Technik-fan.de Wiki mediawikidb https://technik-fan.de/index.php/Hauptseite MediaWiki 1.40.4 first-letter Medium Spezial Diskussion Benutzer Benutzer Diskussion Technik-fan.de Wiki Technik-fan.de Wiki Diskussion Datei Datei Diskussion MediaWiki MediaWiki Diskussion Vorlage Vorlage Diskussion Hilfe Hilfe Diskussion Kategorie Kategorie Diskussion Hauptseite 0 1 1 2011-01-28T18:45:19Z MediaWiki default 0 wikitext text/x-wiki '''MediaWiki wurde erfolgreich installiert.''' Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [http://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch]. == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 3e49cd7ebcf2690896f04fa5d75773f2825463fb 2 1 2011-01-28T18:51:28Z Admin 1 /* Starthilfen */ wikitext text/x-wiki '''MediaWiki wurde erfolgreich installiert.''' Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [http://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch]. == Technik Fan Wiki == == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 1be72dd81f4f8677d8b0bb5899f89d3ef8d79dec 3 2 2011-01-28T18:53:20Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] b5721c10ca621a4861ad5d5d71eb9d17c470b83b 4 3 2011-01-28T18:59:29Z Admin 1 /* Willkommen beim Technik Fan Wiki */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == Alle Senders eines Transponders anzeigen lassen == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 4ae5c42e9b0faeec00ed5f2356f7ac4d812b4aee 5 4 2011-01-28T18:59:54Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == [Alle Senders eines Transponders anzeigen lassen] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] fa9b21a29b69f00e4aaf9667e8a1b2ec8cad4cf6 6 5 2011-01-28T19:01:08Z Admin 1 /* Linux und VDR */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [Alle Senders eines Transponders anzeigen lassen] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 275fad9af26cbc09bd3ad938ae0a224af85c362d 7 6 2011-01-28T19:01:22Z Admin 1 /* Linux und VDR */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == [[Alle Senders eines Transponders anzeigen lassen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] dbd889d38fe97d18d304f8306162be7b11e7bc64 9 7 2011-01-28T19:02:51Z Admin 1 /* Linux und VDR */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == [[Alle Senders eines Transponders anzeigen lassen]] [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 9f1b9ae3377c28bae5cad2bab62c25cf80f4b71d 10 9 2011-01-28T19:03:27Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 2c1492f72fa92a37e60f859210196c8147369790 14 10 2011-01-28T19:09:28Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 820b490ab6aff2c1a4166d2c7be49912fee49bfd 18 14 2011-01-29T10:53:14Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Einfache Steuerung der parallelen Schnittstelle]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 2fabaee46493b4050969cdca974d91b65aba4009 25 18 2011-01-29T20:43:50Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Einfache Steuerung der parallelen Schnittstelle]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 48dff42cb9d68ff888acd9512b7929df5a6d15c7 29 25 2011-01-29T20:50:33Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Einfache Steuerung der parallelen Schnittstelle]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 6bde4be564e8aafad2db749a8462d6503aa97aa4 31 29 2011-01-29T20:54:04Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Einfache Steuerung der parallelen Schnittstelle]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 51fe502ac78db8794bdbe00c2d32f915b65568ba 32 31 2011-01-29T20:55:20Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware ansteuern mit Linux == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] 2ccea6beace6638149cb0d2f4ac30df717540739 34 32 2011-01-29T21:15:23Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware ansteuern mit Linux == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] == Sonstiges == * [[http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]] 1b2db79e1e125c5c8c1a67d5aef2c55bae40ff2d 35 34 2011-01-29T21:15:32Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware ansteuern mit Linux == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] bc69d6dee41455c5bfba487516f00cfd8e1c84d4 36 35 2011-01-29T21:16:22Z Admin 1 wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware ansteuern mit Linux == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] d4442e5d5f47a5cb4fe1fa7c6f61a1adeb7bd33f 38 36 2011-10-26T10:43:14Z Admin 1 /* Hardware ansteuern mit Linux */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 57610932d2ed64fc8ef5ee2da85c38a704a14158 39 38 2011-10-26T10:44:24Z Admin 1 /* Hardware */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] e47ade1881c96ff2cbdc48f706c438199ace51a7 49 39 2011-11-17T18:12:59Z Admin 1 /* Hardware */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] == Arduino == * [[Arduino MIDI Input]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] ab4f3b2a81f81c5e34ef9067868d1004c848216d Alle Senders eines Transponders anzeigen lassen 0 2 8 2011-01-28T19:02:06Z Admin 1 Die Seite wurde neu angelegt: „'''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen''' In das VDR Verzeichniss wechseln: cd /etc/vdr Die Senderliste…“ wikitext text/x-wiki '''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen''' In das VDR Verzeichniss wechseln: cd /etc/vdr Die Senderliste anzeigen lassen: vim channels.conf Für das Erste z.B. erscheint dieser Eintrag: Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 Die Nummer des Transponders beträgt in diesem Fall: 410000. Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt: grep 410000 channels.conf Ausgabe: Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0 BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0 arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0 hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0 Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0 SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0 Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0 Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0 4381c2a463f8047c4d72b7f2398aecf5188de6a6 Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten 0 3 11 2011-01-28T19:04:33Z Admin 1 Die Seite wurde neu angelegt: „'''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author überni…“ wikitext text/x-wiki '''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!''' In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar. WLAN Verbindung im Netzwerkmanager deaktivieren: rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen ifconfig eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC: inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0 inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:107 errors:0 dropped:0 overruns:0 frame:0 TX packets:126 errors:0 dropped:0 overruns:0 carrier:2 Kollisionen:0 Sendewarteschlangenlänge:1000 RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b) Speicher:fbfc0000-fc000000 Physische WLAN Schnittstelle herunterfahren: ifconfig wifi0 down Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen: wlanconfig ath10 create wlandev wifi0 wlanmode monitor Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst): iwconfig ath01 IEEE 802.11g ESSID:"" Nickname:"" Mode:Monitor Channel:0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 Physische Schnittstelle hochfahren: ifconfig wifi0 up Airmon Schnittstelle zuweisen: airmon-ng start ath01 Airodump starten: airodump-ng ath01 Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt. 0e4322c657db245eb22b588e0c51d6b9ff602ebe 13 11 2011-01-28T19:08:35Z Admin 1 wikitext text/x-wiki '''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!''' In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar. WLAN Verbindung im Netzwerkmanager deaktivieren: rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen ifconfig eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC: inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0 inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:107 errors:0 dropped:0 overruns:0 frame:0 TX packets:126 errors:0 dropped:0 overruns:0 carrier:2 Kollisionen:0 Sendewarteschlangenlänge:1000 RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b) Speicher:fbfc0000-fc000000 Physische WLAN Schnittstelle herunterfahren: ifconfig wifi0 down Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen: wlanconfig ath10 create wlandev wifi0 wlanmode monitor Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst): iwconfig ath01 IEEE 802.11g ESSID:"" Nickname:"" Mode:Monitor Channel:0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 Physische Schnittstelle hochfahren: ifconfig wifi0 up Airmon Schnittstelle zuweisen: airmon-ng start ath01 Airodump starten: airodump-ng ath01 Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt. [[Datei:Airodump-wlans.png|Airodump WLAN]] f84c21958bb4cdc2c675027deaa1ad2cc131b1fb Datei:Airodump-wlans.png 6 4 12 2011-01-28T19:06:07Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Der PC als Temperatur Sensor - Digitemp 0 5 15 2011-01-28T19:10:51Z Admin 1 Die Seite wurde neu angelegt: „'''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die B…“ wikitext text/x-wiki '''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.''' Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche Bauanleitung findet ihr hier: https://systemausfall.org/wikis/howto/DigiTemp Nun müssen wir das Programm digitemp installieren: apt-get install digitemp Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit: digitemp_DS9097 -i ttyS0 Die Ausgabe sollte dann so aussehen: Searching the 1-Wire LAN 106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 106C6C7C01080012 Wrote .digitemprc Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden: apt-get install rrdtool Nun erstellen wir ein paar Scripte unter /auktion/rrdtool cd /auktion/rrdtool vim erzeugepng.sh Die Datei sollte mit folgendem Inhalt gefüllt werden: nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \ -l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \ DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \ DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \ DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \ VDEF:g1a=g1,LAST \ VDEF:gmina=gmin,MINIMUM \ VDEF:gmaxa=gmax,MAXIMUM \ LINE2:g1#ff0000:"Zimmer Temperatur" \ GPRINT:g1a:"aktuell\: %5.2lf °C" \ COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n" Datei ausführbar machen mit: chmod ug+x erzeugepng.sh Wenn alles geklappt hat erscheint nach Eingabe von: ./erzeugepng.sh unter dem Ordner /var/www/temperatur.png die Grafik... 8f2256b149ff4a7a0ad2b578d2cb94f629185f2c 16 15 2011-01-28T19:12:43Z Admin 1 wikitext text/x-wiki '''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.''' Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche Bauanleitung findet ihr hier: https://systemausfall.org/wikis/howto/DigiTemp Nun müssen wir das Programm digitemp installieren: apt-get install digitemp Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit: digitemp_DS9097 -i ttyS0 Die Ausgabe sollte dann so aussehen: Searching the 1-Wire LAN 106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 106C6C7C01080012 Wrote .digitemprc Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden: apt-get install rrdtool Nun erstellen wir ein paar Scripte unter /auktion/rrdtool cd /auktion/rrdtool vim erzeugepng.sh Die Datei sollte mit folgendem Inhalt gefüllt werden: nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \ -l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \ DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \ DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \ DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \ VDEF:g1a=g1,LAST \ VDEF:gmina=gmin,MINIMUM \ VDEF:gmaxa=gmax,MAXIMUM \ LINE2:g1#ff0000:"Zimmer Temperatur" \ GPRINT:g1a:"aktuell\: %5.2lf °C" \ COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n" Datei ausführbar machen mit: chmod ug+x erzeugepng.sh Wenn alles geklappt hat erscheint nach Eingabe von: ./erzeugepng.sh unter dem Ordner /var/www/temperatur.png die Grafik... Links: http://lena.franken.de/hardware/temperaturmessung.html http://www.arbeitsplatzvernichtung-durch-outsourcing.de/marty44/rrdtool.html https://systemausfall.org/wikis/howto/DigiTemp Anschluss und Funktion des COM Ports Von „http://www.technik-fan.de/wiki/index.php/Der_PC_als_Temperatur_Sensor_-_Digitemp“ b9262529d63d576928cf5407eb5a24837d33ce6c 17 16 2011-01-28T19:15:06Z Admin 1 wikitext text/x-wiki '''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.''' Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche Bauanleitung findet ihr hier: https://systemausfall.org/wikis/howto/DigiTemp Nun müssen wir das Programm digitemp installieren: apt-get install digitemp Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit: digitemp_DS9097 -i ttyS0 Die Ausgabe sollte dann so aussehen: Searching the 1-Wire LAN 106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 106C6C7C01080012 Wrote .digitemprc Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden: apt-get install rrdtool Nun erstellen wir ein paar Scripte unter /auktion/rrdtool cd /auktion/rrdtool vim erzeugepng.sh Die Datei sollte mit folgendem Inhalt gefüllt werden: nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \ -l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \ DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \ DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \ DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \ VDEF:g1a=g1,LAST \ VDEF:gmina=gmin,MINIMUM \ VDEF:gmaxa=gmax,MAXIMUM \ LINE2:g1#ff0000:"Zimmer Temperatur" \ GPRINT:g1a:"aktuell\: %5.2lf °C" \ COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n" Datei ausführbar machen mit: chmod ug+x erzeugepng.sh Wenn alles geklappt hat erscheint nach Eingabe von: ./erzeugepng.sh unter dem Ordner /var/www/temperatur.png die Grafik... '''Links:'''<br/> http://lena.franken.de/hardware/temperaturmessung.html http://www.arbeitsplatzvernichtung-durch-outsourcing.de/marty44/rrdtool.html<br/> https://systemausfall.org/wikis/howto/DigiTemp<br/> '''Anschluss und Funktion des COM Ports'''<br/> Von „http://www.technik-fan.de/wiki/index.php/Der_PC_als_Temperatur_Sensor_-_Digitemp“ c8406f928627d9d18dbb76b9acc90fe533d6dea8 37 17 2011-05-09T13:04:21Z Admin 1 wikitext text/x-wiki '''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.''' Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche Bauanleitung findet ihr hier: https://systemausfall.org/wikis/howto/DigiTemp Nun müssen wir das Programm digitemp installieren: apt-get install digitemp Konfiguration initialisieren: digitemp_DS9097 -i -s0 -q -c /root/digitemp.cfg Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit: digitemp_DS9097 -i ttyS0 Die Ausgabe sollte dann so aussehen: Searching the 1-Wire LAN 106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 106C6C7C01080012 Wrote .digitemprc Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden: apt-get install rrdtool Nun erstellen wir ein paar Scripte unter /auktion/rrdtool cd /auktion/rrdtool vim erzeugepng.sh Die Datei sollte mit folgendem Inhalt gefüllt werden: nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \ -l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \ DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \ DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \ DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \ VDEF:g1a=g1,LAST \ VDEF:gmina=gmin,MINIMUM \ VDEF:gmaxa=gmax,MAXIMUM \ LINE2:g1#ff0000:"Zimmer Temperatur" \ GPRINT:g1a:"aktuell\: %5.2lf °C" \ COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n" Datei ausführbar machen mit: chmod ug+x erzeugepng.sh Wenn alles geklappt hat erscheint nach Eingabe von: ./erzeugepng.sh unter dem Ordner /var/www/temperatur.png die Grafik... '''Links:'''<br/> http://lena.franken.de/hardware/temperaturmessung.html http://www.arbeitsplatzvernichtung-durch-outsourcing.de/marty44/rrdtool.html<br/> https://systemausfall.org/wikis/howto/DigiTemp<br/> '''Anschluss und Funktion des COM Ports'''<br/> Von „http://www.technik-fan.de/wiki/index.php/Der_PC_als_Temperatur_Sensor_-_Digitemp“ 4d12b1448516b11b6cbc9bdae6f175ff532d89a4 Einfache Steuerung der parallelen Schnittstelle 0 6 19 2011-01-29T10:54:51Z Admin 1 Die Seite wurde neu angelegt: „Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Roch…“ wikitext text/x-wiki Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden. Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten. Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen. Als erstes sollten die benötigten Module geladen werden: modprobe parport modprobe ppdev lsmod|grep parport sollte dann folgende Ausgaben produzieren: parport_pc 32132 0 parport 33256 2 ppdev,parport_pc nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind: apt-get install build-essential nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686): mkdir /usr/src/blink cd /usr/src/blink Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt: vim blink.c Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag: /*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte Schnittstelle nicht oeffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<1) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; } Dann wird ein kleines Makefile erstellt: vim Makefile Inhalt: CC = gcc PROG = blink all: $(CC) -c $(PROG).c $(CC) -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~ Nun kompilieren wir das ganze mit: make und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit: ./blink Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen: su www-data ./blink Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden. apt-get install apache php5 cd /var/www mkdir blink chown www-data www-data ../* vim index.php Inhalt der Datei index.php: <HTML> <TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE> </HEAD> <BODY> <font face="arial"> <CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER> <body bgcolor=ffffe9> </BODY> </HEAD> <CENTER> <html> <?php shell_exec('/usr/src/blink'); echo exec('whoami'); ?> </center> Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.). 3687b4195a5b683bf0061eac631dcd669b4f06c4 20 19 2011-01-29T11:11:43Z Admin 1 wikitext text/x-wiki Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden. Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten. Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen. Als erstes sollten die benötigten Module geladen werden: modprobe parport modprobe ppdev lsmod|grep parport sollte dann folgende Ausgaben produzieren: parport_pc 32132 0 parport 33256 2 ppdev,parport_pc nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind: apt-get install build-essential nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686): mkdir /usr/src/blink cd /usr/src/blink Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt: vim blink.c Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag: <source lang="c"> /*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte Schnittstelle nicht oeffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<1) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; } </source> Dann wird ein kleines Makefile erstellt: vim Makefile Inhalt: CC = gcc PROG = blink all: $(CC) -c $(PROG).c $(CC) -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~ Nun kompilieren wir das ganze mit: make und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit: ./blink Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen: su www-data ./blink Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden. apt-get install apache php5 cd /var/www mkdir blink chown www-data www-data ../* vim index.php Inhalt der Datei index.php: <HTML> <TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE> </HEAD> <BODY> <font face="arial"> <CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER> <body bgcolor=ffffe9> </BODY> </HEAD> <CENTER> <html> <?php shell_exec('/usr/src/blink'); echo exec('whoami'); ?> </center> Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.). d79f801b4c2256479ae2d1420f8d7f3d4cff7862 21 20 2011-01-29T11:12:31Z Admin 1 wikitext text/x-wiki <source lang="c"> while(1){ i++; } </source> Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden. Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten. Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen. Als erstes sollten die benötigten Module geladen werden: modprobe parport modprobe ppdev lsmod|grep parport sollte dann folgende Ausgaben produzieren: parport_pc 32132 0 parport 33256 2 ppdev,parport_pc nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind: apt-get install build-essential nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686): mkdir /usr/src/blink cd /usr/src/blink Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt: vim blink.c Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag: <source lang="c"> /*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte Schnittstelle nicht oeffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<1) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; } </source> Dann wird ein kleines Makefile erstellt: vim Makefile Inhalt: CC = gcc PROG = blink all: $(CC) -c $(PROG).c $(CC) -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~ Nun kompilieren wir das ganze mit: make und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit: ./blink Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen: su www-data ./blink Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden. apt-get install apache php5 cd /var/www mkdir blink chown www-data www-data ../* vim index.php Inhalt der Datei index.php: <HTML> <TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE> </HEAD> <BODY> <font face="arial"> <CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER> <body bgcolor=ffffe9> </BODY> </HEAD> <CENTER> <html> <?php shell_exec('/usr/src/blink'); echo exec('whoami'); ?> </center> Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.). 41272e73b0b6251c2f4eb765efa12429d598a3b8 22 21 2011-01-29T11:15:18Z Admin 1 wikitext text/x-wiki Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden. Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten. Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen. Als erstes sollten die benötigten Module geladen werden: modprobe parport modprobe ppdev lsmod|grep parport sollte dann folgende Ausgaben produzieren: parport_pc 32132 0 parport 33256 2 ppdev,parport_pc nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind: apt-get install build-essential nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686): mkdir /usr/src/blink cd /usr/src/blink Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt: vim blink.c Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag: <source> /*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte Schnittstelle nicht oeffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<1) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; } </source> Dann wird ein kleines Makefile erstellt: vim Makefile Inhalt: CC = gcc PROG = blink all: $(CC) -c $(PROG).c $(CC) -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~ Nun kompilieren wir das ganze mit: make und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit: ./blink Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen: su www-data ./blink Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden. apt-get install apache php5 cd /var/www mkdir blink chown www-data www-data ../* vim index.php Inhalt der Datei index.php: <HTML> <TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE> </HEAD> <BODY> <font face="arial"> <CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER> <body bgcolor=ffffe9> </BODY> </HEAD> <CENTER> <html> <?php shell_exec('/usr/src/blink'); echo exec('whoami'); ?> </center> Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.). 65ab4d51aaea223625d0a1b0a8352bf06ea3c896 23 22 2011-01-29T11:16:08Z Admin 1 wikitext text/x-wiki Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden. Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten. Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen. Als erstes sollten die benötigten Module geladen werden: modprobe parport modprobe ppdev lsmod|grep parport sollte dann folgende Ausgaben produzieren: parport_pc 32132 0 parport 33256 2 ppdev,parport_pc nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind: apt-get install build-essential nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686): mkdir /usr/src/blink cd /usr/src/blink Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt: vim blink.c Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag: <source> /*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte Schnittstelle nicht oeffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<1) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; } </source> Dann wird ein kleines Makefile erstellt: vim Makefile Inhalt: <source lang=bash> CC = gcc PROG = blink all: $(CC) -c $(PROG).c $(CC) -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~ </source> Nun kompilieren wir das ganze mit: make und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit: ./blink Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen: su www-data ./blink Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden. apt-get install apache php5 cd /var/www mkdir blink chown www-data www-data ../* vim index.php Inhalt der Datei index.php: <HTML> <TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE> </HEAD> <BODY> <font face="arial"> <CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER> <body bgcolor=ffffe9> </BODY> </HEAD> <CENTER> <html> <?php shell_exec('/usr/src/blink'); echo exec('whoami'); ?> </center> Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.). c5e26c461c7715e64f89604086aff70988d47dc0 24 23 2011-01-29T11:17:59Z Admin 1 wikitext text/x-wiki Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden. Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten. Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen. Als erstes sollten die benötigten Module geladen werden: modprobe parport modprobe ppdev lsmod|grep parport sollte dann folgende Ausgaben produzieren: parport_pc 32132 0 parport 33256 2 ppdev,parport_pc nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind: apt-get install build-essential nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686): mkdir /usr/src/blink cd /usr/src/blink Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt: vim blink.c Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag: <source> /*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte Schnittstelle nicht oeffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<1) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; } </source> Dann wird ein kleines Makefile erstellt: vim Makefile Inhalt: <source lang=bash> CC = gcc PROG = blink all: $(CC) -c $(PROG).c $(CC) -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~ </source> Nun kompilieren wir das ganze mit: make und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit: ./blink Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen: su www-data ./blink Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden. apt-get install apache php5 cd /var/www mkdir blink chown www-data www-data ../* vim index.php Inhalt der Datei index.php: <source lang=html4strict> <HTML> <TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE> </HEAD> <BODY> <font face="arial"> <CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER> <body bgcolor=ffffe9> </BODY> </HEAD> <CENTER> <html> <?php shell_exec('/usr/src/blink'); echo exec('whoami'); ?> </center> </source> Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.). 1940cb31d459af9caad1829025a4310b191f6955 Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox 0 7 26 2011-01-29T20:47:47Z Admin 1 Die Seite wurde neu angelegt: „==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes mus…“ wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <source lang=bash> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </source> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: <source lang=bash> vim /etc/init.d/xorg #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben 05207eb8170f991491a1695ae75220961400685a 27 26 2011-01-29T20:48:57Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <source lang=bash> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </source> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: <source lang=bash> vim /etc/init.d/xorg #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben 56f6f56718022fabd1b64ba6021b2a20b6fb7738 28 27 2011-01-29T20:49:24Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <source lang=bash> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </source> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben 66003c95daa0323cb860f6e833490ac7f95b9513 ISDN Anrufbeantworter mit Capisuite 0 8 30 2011-01-29T20:52:50Z Admin 1 Die Seite wurde neu angelegt: „===Diese Anleitung zeigt wie ein Anrufbeantworter mit Capisuite erstellt werden kann=== '''Voraussetzung: Die Capi Schnittstelle muss konfiguriert sein. Z.B. übe…“ wikitext text/x-wiki ===Diese Anleitung zeigt wie ein Anrufbeantworter mit Capisuite erstellt werden kann=== '''Voraussetzung: Die Capi Schnittstelle muss konfiguriert sein. Z.B. über eine FritzCard etc.''' '''Capisuite installieren:''' apt-get install capisuite Voice Mail Gruppen erstellen: groupadd vm_test useradd -g vm_test -r vm_test vim /etc/capisuite/answering_machine.conf Inhalt der Datei: <source lang=bash> # These are some global defaults - see comments in the original file [GLOBAL] audio_dir="/usr/share/capisuite/" voice_user_dir="/var/spool/capisuite/users/" user_audio_files="0" voice_delay="5" announcement="announcement.la" record_length="300" record_silence_timeout="8" [vm_test] voice_numbers="223344" #Hier muss die eigene MSN rein voice_action="MailAndSave" voice_delay="5" record_length="60" voice_email="test@arcor.de" pin="00000" </source> incoming.py anpassen: Am Anfang des Skriptes sollte das eingefügt werden: # -*- coding: UTF-8 -*- Die E-Mail Nachricht kann auch geändert werden (Zeile 254): <source lang=bash> if (action=="mailandsave"): cs_helpers.sendMIMEMail(fromaddress, mailaddress, "Anruf erhalten von: "+call_from+" zu "+call_to, "la", "Du hast eine Nachricht auf dem Anrufbeantworter erhalten von der Nummer: "+call_from+" zu "+call_to+"\nDatum: "+time.ctime()+"\n\n" +"Die Nachricht wurde an diese E-Mail angehaengt.\n", filename) </source> Jetzt Capisuite neu starten... /etc/init.d/capisuite restart und die Nummer 223344 anrufen. Am besten noch ein tail auf das LOG. tail -f /var/log/capisuite.log Das war's schon habt ihr einen Anrufbeantworter. Quellen: * http://www.mth-solutions.de/howtos/debian_ubuntu/capisuite * http://wiki.ubuntuusers.de/CapiSuite 4a888ef8708e7c19355ca558fb1e25aa11faf10a USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller 0 9 33 2011-01-29T20:57:38Z Admin 1 Die Seite wurde neu angelegt: „'''Hier wird eine Möglichkeit der Hardware Steuerung mit Debian Linux erläutert. Ziel ist es, Funksteckdosen über das Internet schalten zu können. Das Herz u…“ wikitext text/x-wiki '''Hier wird eine Möglichkeit der Hardware Steuerung mit Debian Linux erläutert. Ziel ist es, Funksteckdosen über das Internet schalten zu können. Das Herz unserer Schaltung stellt der USB Mikrocontroller Cypress CY7C6300 dar. Dieser kommuniziert direkt über den USB Port und stellt wahlweise 8 Ein oder Ausgänge bereit. Eine komplette Platine zum Experimentieren kann bei der AK Modul-Bus Gmbh bezogen werden. Dabei kostet der bereits mit passender Firmware geflashter Chip etwa 15 Eur. Darüber hinaus werden noch 2 Widerstände und ein Quartz mit 6 Mhz benötigt. Der Cypress CY7C6300:''' Wird der Controller an den USB Port eines Linux Rechners angeschlossen wird er automatisch initialisiert und die passenden Module werden geladen: dmesg Es erscheint dann: [ 152.440000] usb 1-2: new low speed USB device using uhci_hcd and address 2 [ 162.612000] usb 1-2: configuration #1 chosen from 1 choice [ 167.740000] cypress_cy7c63 1-2:1.0: Cypress CY7C63xxx device now attached [ 167.740000] usbcore: registered new interface driver cypress_cy7c63 Nach dem Laden des Treibers wird ein Port zum steuern angelegt, dieser ist im folgendem Pfad zu finden(Die USB ID wird von dmesg übernommen): /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0 Um die Ports einzulesen ist folgender Befehl nötig: cat /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0 Um die Ausgänge ansteuern zu können benötigen wir diesen Befehl: echo 128 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0 Die Ports werden ähnlich wie die parallele Schnittstelle binär codiert angesprochen. Aus den Beispielen ergibt sich die entsprechende Codierung: Ersten Port einschalten(2 hoch 0): echo 1 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0 Ersten und zweiten Port einschalten(2 hoch 0 + 2 hoch 1): echo 3 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0 Ersten und dritten Port einschalten(2 hoch 0 + 2 hoch 2): echo 5 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0 Referenzen * http://www.ak-modul-bus.de/ * http://www.obock.de/kernel/cypress/ 6d29f65cb2e1f15235b7656d0a55469a99cadecc Datei:Detector1.jpg 6 11 41 2011-10-26T10:59:07Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Isotronic 5 in 1 Detektor verbessern 0 12 42 2011-10-26T11:01:33Z Admin 1 Die Seite wurde neu angelegt: „=Hardware= Isotronic 5 in 1 Detektor Art. Nr: 90645 Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-m…“ wikitext text/x-wiki =Hardware= Isotronic 5 in 1 Detektor Art. Nr: 90645 Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind. =Benötigtes Werkzeug= * Schraubendreher * 10 min. Zeit [[Datei:Detector.jpg|5 in 1 Detektor]] Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen [[Datei:Detector1.jpg|5 in 1 Detektor]] 2b4569ee47775d8eab3b540430549064ef5891ee 45 42 2011-10-26T11:15:25Z Admin 1 wikitext text/x-wiki =Hardware= Isotronic 5 in 1 Detektor Art. Nr: 90645 Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind. =Benötigtes Werkzeug= * Schraubendreher * 10 min. Zeit [[Datei:Detector.jpg|5 in 1 Detektor]] ''Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen. Dabei wird dann das Potentiometer auf dem Bild genau so weit gedreht bis der Summer nicht mehr ertönt. Somit hat man eine viel höhere Genauigkeit beim Suchen von Elektro Leitungen. Der Regler Links daneben ist für die Erkennung von Metall. Evtl. kann auch hier noch eine höhere Genauigkeit erreicht werden.'' <gallery> Datei:Detector3.jpg|Nach dem Öffnen des Gehäuses bietet sich dieses Bild Datei:Detector1.jpg|Einstellen des Potentiometers Datei:Detector2.jpg|Die neue Position des Potentiometers </gallery> d3f06082bbfe974831c8e81b813f71c0dca480cc 46 45 2011-10-26T11:21:17Z Admin 1 wikitext text/x-wiki =Hardware= Isotronic 5 in 1 Detektor '''Art. Nr: 90645, Detektor 07/04 '''<BR> Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden, da die Reichweite sehr begrenzt ist. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind. =Benötigtes Werkzeug= * Schraubendreher * 10 min. Zeit [[Datei:Detector.jpg|5 in 1 Detektor]] ''Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen. Dabei wird dann das Potentiometer auf dem Bild genau so weit gedreht bis der Summer nicht mehr ertönt. Somit hat man eine viel höhere Genauigkeit beim Suchen von Elektro Leitungen. Der Regler Links daneben ist für die Erkennung von Metall. Evtl. kann auch hier noch eine höhere Genauigkeit erreicht werden.'' <gallery> Datei:Detector3.jpg|Nach dem Öffnen des Gehäuses bietet sich dieses Bild Datei:Detector1.jpg|Einstellen des Potentiometers Datei:Detector2.jpg|Die neue Position des Potentiometers </gallery> Stromleitungen können besser erkannt werden wenn Strom hindurch fliesst. Also wenn nötig einfach das Licht einschalten. 99dd8ff4eb115d886060097dd66337c42233650f 48 46 2011-10-26T11:24:22Z Admin 1 wikitext text/x-wiki =Hardware= Isotronic 5 in 1 Detektor '''Art. Nr: 90645, Detektor 07/04 '''<BR> Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden, da die Reichweite sehr begrenzt ist. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind. =Benötigtes Werkzeug= * Schraubendreher * 10 min. Zeit [[Datei:Detector4.jpg|5 in 1 Detektor]] ''Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen. Dabei wird dann das Potentiometer auf dem Bild genau so weit gedreht bis der Summer nicht mehr ertönt. Somit hat man eine viel höhere Genauigkeit beim Suchen von Elektro Leitungen. Der Regler Links daneben ist für die Erkennung von Metall. Evtl. kann auch hier noch eine höhere Genauigkeit erreicht werden.'' <gallery> Datei:Detector3.jpg|Nach dem Öffnen des Gehäuses bietet sich dieses Bild Datei:Detector1.jpg|Einstellen des Potentiometers Datei:Detector2.jpg|Die neue Position des Potentiometers </gallery> Stromleitungen können besser erkannt werden wenn Strom hindurch fliesst. Also wenn nötig einfach das Licht einschalten. 4017981eb7a835b3a80456ef9c3b87c29a12f7cd Datei:Detector2.jpg 6 13 43 2011-10-26T11:08:50Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Detector3.jpg 6 14 44 2011-10-26T11:14:30Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Detector4.jpg 6 15 47 2011-10-26T11:23:45Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Arduino MIDI Input 0 16 50 2011-11-17T18:18:28Z Admin 1 Die Seite wurde neu angelegt: „=Hardware= Arduino Mega oder Uno '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR>“ wikitext text/x-wiki =Hardware= Arduino Mega oder Uno '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> 33d0b37b361b26321a56ad386141648f590f8407 Datei:Midi1.png 6 17 51 2011-11-17T18:27:10Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Arduino MIDI Input 0 16 52 50 2011-11-17T18:27:59Z Admin 1 wikitext text/x-wiki =Hardware= Arduino Mega oder Uno '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund [[Datei:midi1.png|Platine]] b0212b5685366b31ca38575b352770160f3e1663 54 52 2011-11-17T18:30:07Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund [[Datei:midi1.png|Platine]] a5fc122e7bf0779d8789094b814fb60dd5ee787e 56 54 2011-11-17T18:35:32Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> [[Datei:midi1.png|links|gerahmt|Platine von vorne]] [[Datei:midi2.png|links|gerahmt|Platine von hinten]] d0d298e499c94479e00369c4ac63bc30344fdf6d 58 56 2011-11-17T18:38:43Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> [[Datei:midi1.png|links|gerahmt|Platine von vorne]] [[Datei:midi2.png|links|gerahmt|Platine von hinten]] [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]] 37c86494820f7d4ab33bbcbfb9791643098c6344 59 58 2011-11-17T18:44:44Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> '''Arduino Sketch:''' <source lang="c"> int incomingByte = 0; // for incoming serial data void setup() { Serial.begin(57600); Serial3.begin(57600); } void loop() { incomingByte = Serial3.read(); if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { // Filtering Serial.println(incomingByte); } } </source> [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> [[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR> [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR> 4afd40060cdd008710331f66ee5ac248c633f717 60 59 2011-11-17T18:48:25Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> '''Arduino Sketch:''' <source lang="c"> int incomingByte = 0; // for incoming serial data void setup() { Serial.begin(57600); Serial3.begin(57600); } void loop() { incomingByte = Serial3.read(); if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { // Filtering Serial.println(incomingByte); } } </source> Es ergibt sich folgendes Bild beim Drücken der Tasten am Keyboard: <source lang="text"> 102 30 30 38 32 102 6 56 38 30 102 128 32 6 </source> [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> [[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR> [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR> 07d5c76ae9dff95cba3b45eea45407fb2d0d71e6 61 60 2011-11-17T18:48:51Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> '''Arduino Sketch:''' <source lang="c"> int incomingByte = 0; // for incoming serial data void setup() { Serial.begin(57600); Serial3.begin(57600); } void loop() { incomingByte = Serial3.read(); if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { // Filtering Serial.println(incomingByte); } } </source> Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard: <source lang="text"> 102 30 30 38 32 102 6 56 38 30 102 128 32 6 </source> [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> [[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR> [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR> c2a9e851050459647b6d510332e22ba5b8118db8 62 61 2011-12-16T18:34:09Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> '''Arduino Sketch:''' <source lang="c"> //Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250 int incomingByte = 0; // for incoming serial data int temp = 0; int i1=0; void setup() { Serial.begin(31250); Serial3.begin(31250); } void loop() { incomingByte = Serial3.read(); if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { if (temp == 144 or temp == 0) { switch (incomingByte) { case 96: Serial.println("Note: 96"); break; case 95: Serial.println("Note: 95"); break; case 94: Serial.println("Note: 94"); break; case 93: Serial.println("Note: 93"); break; } } temp = incomingByte; Serial.println(incomingByte); i1=0; } } </source> Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard: <source lang="text"> 102 30 30 38 32 102 6 56 38 30 102 128 32 6 </source> [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> [[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR> [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR> dbebc977e769bb6b6ac0d15a26412fdc5ca94177 Datei:Midi1.png 6 17 53 51 2011-11-17T18:28:50Z Admin 1 hat eine neue Version von „[[Datei:Midi1.png]]“ hochgeladen wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Midi2.png 6 18 55 2011-11-17T18:33:09Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Midi3.png 6 19 57 2011-11-17T18:38:15Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Hauptseite 0 1 63 49 2012-01-13T18:12:44Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 862f9f6d1e2ec23d387f0769f307cf7cb8ce8bc4 Open Energy Monitor 0 20 64 2012-01-13T18:15:48Z Admin 1 Die Seite wurde neu angelegt: „=Software== Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gema…“ wikitext text/x-wiki =Software== Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gemacht werden: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> cafd1798dfd896e99e2d07f758f036562e94c344 65 64 2012-01-13T18:16:22Z Admin 1 wikitext text/x-wiki =Software== Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gemacht werden: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> 9befcb9cfc9bf944d6effc4766417b100922e321 66 65 2012-01-13T18:18:44Z Admin 1 wikitext text/x-wiki =Software= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gemacht werden: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> 44efa5c35ce1913bd5b075984562e72fa5e3e817 67 66 2012-01-13T18:20:15Z Admin 1 wikitext text/x-wiki =Software= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> f2907dd0d9fdf1dcfc27835513677ab003f17661 68 67 2012-01-13T18:21:38Z Admin 1 wikitext text/x-wiki =Software= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. a3906fe888d1d3b5f4e05249652549b244c05a27 69 68 2012-01-13T18:23:20Z Admin 1 wikitext text/x-wiki =Software= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 d901cf4404b9d4baa35b1a50e8beede557bb76f8 70 69 2012-01-13T18:24:58Z Admin 1 wikitext text/x-wiki =Software= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 d736ec9e5b6a406a7a0c09c91e5f19ab3732abc1 71 70 2012-01-13T18:28:45Z Admin 1 wikitext text/x-wiki =Software= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 1b48537dc62f50b5c1befeede9809dc4faa3c696 72 71 2012-01-13T21:02:22Z Admin 1 wikitext text/x-wiki =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> fde5380570628bb222d11d169f75f47efc6b3923 73 72 2012-01-13T21:03:44Z Admin 1 /* Erweitern der Ethernet Library */ wikitext text/x-wiki =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen: <source lang=bash> <VirtualHost *:80> ServerName emon.yourserver.de ServerAlias emon ServerAdmin your@mail.de DocumentRoot /var/www/emon <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/emon> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/emon-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/emon-access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> </source> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 7fe4daa62f9af32edb046b3300172596619eba5a 74 73 2012-01-14T10:54:05Z Admin 1 /* Software auf dem Server */ wikitext text/x-wiki =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon unp openenergymonitor-emoncms3-44264cd.tar.gz mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 3daf13d7a46e1cd464f00eb99dd9121188ac9536 75 74 2012-01-14T10:57:24Z Admin 1 wikitext text/x-wiki =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ba9b5139620870912771470a0512c0d4f1282df4 77 75 2012-01-14T11:05:35Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. [[Datei:emon1.png|Emon Real Time Energie]] =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 6a5f6bf6c2d3cdc9136dd754ef9c24c81806d657 79 77 2012-01-14T11:48:47Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. [[Datei:emon1.png|Emon Real Time Energie]] Symbolischer Aufbau der Komponenten: [[Datei:emon2.png|Open Energie Monitor]] Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 8b08370e6d7a94fa9a663e85699099aafbe7dd18 80 79 2012-01-14T11:48:54Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. [[Datei:emon1.png|Emon Real Time Energie]] Symbolischer Aufbau der Komponenten: [[Datei:emon2.png|Open Energie Monitor]] Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> a26b51520c0d71672c4007299554c76491a2bc9b 81 80 2012-01-14T11:51:05Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> b95f2fa4c2eaf5d6a3ff3875820c08d35c112b00 82 81 2012-01-14T11:53:06Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Folgende Bauteile werden benötigt: -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> c3cddbcefdd335c1b466c70350b4404fb7383fc6 83 82 2012-01-14T11:56:08Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> f6a4c2020f8cdf3f30bfe2e7e28ae9c641c3f72a 84 83 2012-01-14T12:02:52Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. =Aufbau= Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ba653d6f3c4cb221f4831b1cbf5b7506642a993e 85 84 2012-01-14T12:06:13Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 59bfb92e85b50a77852e500d0bbfbbfad28a0468 87 85 2012-01-14T12:16:56Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 0e022012cd7855b63ee41a21dff07e28590f168c 89 87 2012-01-14T12:28:07Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 15406363ba1f7fd5909321b399a7514c2696fe22 91 89 2012-01-14T12:28:44Z Admin 1 /* Converter Board */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 607412faece6fa5dae5c348585a743d78fa5abf8 93 91 2012-01-14T12:43:40Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: {{filepath:USBemon.zip}} ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 64abcbfbefa732a73bb5e7ac6503b0cc03d3a7e2 94 93 2012-01-14T12:44:11Z Admin 1 /* Arduino Sketch */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: {{filepath:USBemon.zip}} ==Erweitern der Ethernet Library== Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet: http://www.mcqn.com/weblog/dhcp_and_dns_arduino Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 64fd340a91808710e4885f54af7db3c0c271673e 95 94 2012-01-14T12:45:05Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: {{filepath:USBemon.zip}} =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> fd80b3ddc9b09cd33622a0e20c5cea8bd59f04e0 96 95 2012-01-14T12:47:25Z Admin 1 /* Einleitung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: {{filepath:USBemon.zip}} =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> e1facf54292a2cc2accc1f3ee1f53209e03b575d 98 96 2012-01-14T14:47:10Z Admin 1 /* Arduino Sketch */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: {{filepath:USBemon.zip}} ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 33863d0a956096a8c054fdbf6e2d00ccc140e9d8 99 98 2012-01-14T14:49:01Z Admin 1 /* Arduino Sketch */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: {{filepath:USBemon.zip}} ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 2ebe34e9150f86fa83bcedd3779d07ba59c947ce Datei:Emon1.png 6 21 76 2012-01-14T11:03:31Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon2.png 6 22 78 2012-01-14T11:43:57Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon3.jpg 6 23 86 2012-01-14T12:11:52Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon4.jpg 6 24 88 2012-01-14T12:25:56Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon5.jpg 6 25 90 2012-01-14T12:28:14Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:USBemon.zip 6 26 92 2012-01-14T12:39:35Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon6.jpg 6 27 97 2012-01-14T14:44:22Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon7.png 6 28 100 2012-01-14T14:52:47Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon8.png 6 29 101 2012-01-14T15:01:08Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon9.png 6 30 102 2012-01-14T15:02:31Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Open Energy Monitor 0 20 103 99 2012-01-14T15:02:52Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: {{filepath:USBemon.zip}} ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 4126840e8a966da1f65e54df8527c8dd77627392 105 103 2012-01-14T15:17:23Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Hier ist mein Sketch: [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 40fce6debd227e11bfc6d1211f7942d69b155b35 107 105 2012-01-14T15:30:12Z Admin 1 /* Arduino Sketch */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Hier ist mein Sketch: [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | ccze Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> c524fadf1c7783ec3c728156889cf76a9c06f942 108 107 2012-01-14T15:30:37Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Hier ist mein Sketch: [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> b70248b84b530fe8576652ffe40381dfb6975ec6 110 108 2012-01-14T15:38:00Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] Hier ist mein Sketch: [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> d889755bc9dfed3582a14518440db6e5ce37ea9d 111 110 2012-01-14T15:39:22Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Hier ist mein Sketch: [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 7fd3baaa00c3f511664eea60dba2d5b428fad706 112 111 2012-01-14T15:40:24Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. Hier ist mein Sketch: [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> b2f8d01621c9e92aea9d49a08d42171d7a6b9ef2 113 112 2012-01-14T15:40:54Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 9d270f6686092d676ae221d7e1739f652d7a8a04 114 113 2012-01-14T15:41:10Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 155a5aaab781339385811f411d7ce6189d37f5a9 115 114 2012-01-14T15:44:05Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 868ce656f6c541b289ffdc63a3377250ecb66ca5 116 115 2012-01-14T15:44:23Z Admin 1 /* Ethernet Shield und emon */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 1646aa54b3488fe85b121a08b45f4bf1b83ee8e5 118 116 2012-01-14T15:47:54Z Admin 1 /* Converter Board */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose: [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 79fb6f377e197b3ab7ab444e32c8b1936b651c93 119 118 2012-01-14T15:50:09Z Admin 1 /* Converter Board */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> c28b8b71d1824a5780b2bd9e9b3257ce272521b8 120 119 2012-01-14T15:50:20Z Admin 1 /* Converter Board */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> 0ea9912f297034802cb521e8468a95cfcb52d68b 121 120 2012-01-14T15:51:47Z Admin 1 /* Software auf dem Server */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> a97d5ce3a1d63da70885ceb2a0b41e1f1700570b 122 121 2012-01-14T15:55:35Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> 4d4fe733177804bc4c12a8972caa9b85c56f1ee1 123 122 2012-01-14T15:56:03Z Admin 1 /* Eigenes Dashboard erstellen */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> ba5079bc0cda7fae1d48e955c8552215551cc2b3 125 123 2012-01-14T15:57:39Z Admin 1 /* Eigenes Dashboard erstellen */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: a07d227917e1bd737e1fad74996d658c43d134e5 126 125 2012-01-14T15:57:54Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] 961f27f53f80ab0f5d36ca8e24cd32b7c9d208b5 127 126 2012-01-14T15:58:03Z Admin 1 /* Eigenes Dashboard erstellen */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] cfe59c86eb34f58830d287e4a8cf206b141b3c93 128 127 2012-01-14T16:00:08Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 21f772f798edb5310f830810ba1a32d041353c5c 129 128 2012-01-14T16:01:29Z Admin 1 /* Weblinks */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors 70282274ca30bf93a4d0f521f53f7d94912fb5c8 130 129 2012-01-14T16:02:08Z Admin 1 /* User Registrierung abschalten */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors ba8481e667724fa8742729b76d0f26ec95a69ad8 131 130 2012-01-14T16:09:24Z Admin 1 /* Weblinks */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration fbd8732538bb1cad99d01b610e82997a037dba11 133 131 2012-01-14T18:02:58Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration 3b6f5faa810142254538f23be369d6096ec50224 136 133 2012-01-15T19:40:26Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration a2a99f7e6461b31cb4a8c56a5a09b51ef46d596a 148 136 2012-01-19T20:13:57Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration d32e64c158dbe9b4be5297ea8e30cd4e00c41080 149 148 2012-01-22T12:32:14Z Admin 1 /* Eigenes Dashboard erstellen */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten Api Key und die korrekte Feed ID einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> <source lang=php> <iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" frameborder="1" scrolling="no"></iframe> <iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> <br> <div class="widget-container-v"> <div class="title">Watt</div> <div class="dial" scale="1" units="W" max="3000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">KWh Test</div> <div class="dial" scale="1" units="kW" max="5000" feed="power"></div> <br><br> </div> <div class="widget-container-v"> <div class="title">Power now</div> <div class="bar" scale="1000" units="W" max="500" feed="power"></div> <br><br> </div> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon13.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration b448a06b6feda907c13c6cc2b3acdd90efb668d5 151 149 2012-01-22T12:35:47Z Admin 1 /* Eigenes Dashboard erstellen */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten Api Key und die korrekte Feed ID einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> Hier ein Beispiel für eine schöne Übersicht auf Deutsch: <source lang=php> <div class="widget-container-nc"> <h2>Energie Explorer</h2> <iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&amp;kwhd=7&amp;power=4" frameborder="0" scrolling="no"> </iframe> </div> <div class="widget-container-v" style="height:562px"> <div class="widget"> <div class="title">Aktueller Energie Verbrauch<b></b></div><b> <div class="dial" feed="power" max="5000" units="W" scale="1"></div> </b></div><b> <div style="clear:both;"></div><br> <div class="stats" style="height:70px"> <b>Heutiger Energieverbrauch</b><br> <div class="value"><span class="kwhd"></span> kWh</div> </div> <div class="widget"> <div id="house-graph" class="graph" feed="power"></div> </div> </b></div> <iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon17.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration cf46b65733f15b10b048567ae4f7b2cc6caa584d Datei:EthernetAndPowerInet.zip 6 31 104 2012-01-14T15:13:34Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon10.png 6 32 106 2012-01-14T15:28:59Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon11.jpg 6 33 109 2012-01-14T15:37:00Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon12.jpg 6 34 117 2012-01-14T15:47:02Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon13.png 6 35 124 2012-01-14T15:57:18Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon14.png 6 36 132 2012-01-14T17:59:25Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon15.jpg 6 37 134 2012-01-15T19:36:42Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon16.jpg 6 38 135 2012-01-15T19:39:27Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Hauptseite 0 1 137 63 2012-01-19T19:21:34Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Arduino (Städtisch Bühnen Münster)]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 5ea6987a6b0bb46f0465f2455cde9db403502eb4 138 137 2012-01-19T19:21:44Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Arduino Printer Control (Städtisch Bühnen Münster)]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 6c9964df3a28ca7ebb0c90c584a1bb456bdaa712 139 138 2012-01-19T19:22:22Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Arduino Printer Control (Städtische Bühnen Münster)]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 08d88feb80e5b5a9aec15c9a68c254015a0ea09f Arduino Printer Control (Städtische Bühnen Münster) 0 39 140 2012-01-19T19:34:44Z Admin 1 Die Seite wurde neu angelegt: „=Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwic…“ wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. =MIDI Steuerung= ef4923c16a438a6cc7e0ad78bee60e1737a601e0 143 140 2012-01-19T19:47:37Z Admin 1 wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. =MIDI Steuerung= Siehe: [[Arduino MIDI Input]] [[Datei:KeyBoard.png|Keyboard Belegung]] [[Datei:Theater1.jpg|Keyboard Belegung]] 648b2024993657c6155e5165c0565c3c1c088c47 144 143 2012-01-19T19:53:52Z Admin 1 wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. =MIDI Steuerung= Siehe: [[Arduino MIDI Input]] [[Datei:KeyBoard.png|Keyboard Belegung]] [[Datei:Theater1.jpg|800px|Keyboard Belegung]] Alle Fotos zum Projekt sind in meinem Picasa Album: https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek# 34d767143f148427b44c646c4a4ff3d2f1a3f2f1 145 144 2012-01-19T19:57:56Z Admin 1 wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. =MIDI Steuerung= Siehe: [[Arduino MIDI Input]] [[Datei:KeyBoard.png|Keyboard Belegung]] [[Datei:Theater1.jpg|800px|Keyboard Belegung]] Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek#|Picasa] 3704be431a00934a942b07ce5a5fc136c81ba4ae 146 145 2012-01-19T20:07:59Z Admin 1 /* Einleitung */ wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. =MIDI Steuerung= Siehe: [[Arduino MIDI Input]] [[Datei:KeyBoard.png|Keyboard Belegung]] [[Datei:Theater1.jpg|800px|Keyboard Belegung]] Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek#|Picasa] 56e8a11efca099af642c8ea1464fb69b00b898d8 147 146 2012-01-19T20:09:04Z Admin 1 /* MIDI Steuerung */ wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. =MIDI Steuerung= Siehe: [[Arduino MIDI Input]] [[Datei:KeyBoard.png|Keyboard Belegung]] [[Datei:Theater1.jpg|800px|Keyboard Belegung]] Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek?authuser=0&feat=directlink|Picasa] 1ee8c00aced1dd7de38c179722505a523a6309d5 Datei:KeyBoard.png 6 40 141 2012-01-19T19:40:49Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Theater1.jpg 6 41 142 2012-01-19T19:47:09Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Emon17.png 6 42 150 2012-01-22T12:34:36Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Open Energy Monitor 0 20 152 151 2012-01-22T12:37:09Z Admin 1 /* Eigenes Dashboard erstellen */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> Hier ein Beispiel für eine schöne Übersicht auf Deutsch: <source lang=php> <div class="widget-container-nc"> <h2>Energie Explorer</h2> <iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&amp;kwhd=7&amp;power=4" frameborder="0" scrolling="no"> </iframe> </div> <div class="widget-container-v" style="height:562px"> <div class="widget"> <div class="title">Aktueller Energie Verbrauch<b></b></div><b> <div class="dial" feed="power" max="5000" units="W" scale="1"></div> </b></div><b> <div style="clear:both;"></div><br> <div class="stats" style="height:70px"> <b>Heutiger Energieverbrauch</b><br> <div class="value"><span class="kwhd"></span> kWh</div> </div> <div class="widget"> <div id="house-graph" class="graph" feed="power"></div> </div> </b></div> <iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> </source> Ergibt z.B. folgendes Dashboard: [[Datei:emon17.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration f8063ca0467247896a61a9190569d005dee515dd 153 152 2012-01-22T12:39:59Z Admin 1 /* Eigenes Dashboard erstellen */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> Hier ein Beispiel für eine schöne Übersicht auf Deutsch: <source lang=php> <div class="widget-container-nc"> <h2>Energie Explorer</h2> <iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&amp;kwhd=7&amp;power=4" frameborder="0" scrolling="no"> </iframe> </div> <div class="widget-container-v" style="height:562px"> <div class="widget"> <div class="title">Aktueller Energie Verbrauch<b></b></div><b> <div class="dial" feed="power" max="5000" units="W" scale="1"></div> </b></div><b> <div style="clear:both;"></div><br> <div class="stats" style="height:70px"> <b>Heutiger Energieverbrauch</b><br> <div class="value"><span class="kwhd"></span> kWh</div> </div> <div class="widget"> <div id="house-graph" class="graph" feed="power"></div> </div> </b></div> <iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> </source> Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern: vim /emon/Vis/kWhdZoomer/view.js vim /emon/Vis/kWhdZoomer/kwhdzoomer.php Ergibt z.B. folgendes Dashboard: [[Datei:emon17.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration f971ec036c4f041642e4b3ae36123be37aa66121 154 153 2012-01-23T18:58:53Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> Hier ein Beispiel für eine schöne Übersicht auf Deutsch: <source lang=php> <div class="widget-container-nc"> <h2>Energie Explorer</h2> <iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&amp;kwhd=7&amp;power=4" frameborder="0" scrolling="no"> </iframe> </div> <div class="widget-container-v" style="height:562px"> <div class="widget"> <div class="title">Aktueller Energie Verbrauch<b></b></div><b> <div class="dial" feed="power" max="5000" units="W" scale="1"></div> </b></div><b> <div style="clear:both;"></div><br> <div class="stats" style="height:70px"> <b>Heutiger Energieverbrauch</b><br> <div class="value"><span class="kwhd"></span> kWh</div> </div> <div class="widget"> <div id="house-graph" class="graph" feed="power"></div> </div> </b></div> <iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> </source> Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern: vim /emon/Vis/kWhdZoomer/view.js vim /emon/Vis/kWhdZoomer/kwhdzoomer.php Ergibt z.B. folgendes Dashboard: [[Datei:emon17.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration 8bcc2d33ad21b8a83a478b26185bee692bcdcc5d Hauptseite 0 1 155 139 2012-02-15T18:38:05Z Admin 1 /* Hardware */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] * [[Turnigy 9x]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Arduino Printer Control (Städtische Bühnen Münster)]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 3de999e45eb00d068f56c0f6aa2b0e85c38acc34 172 155 2012-04-20T14:07:45Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] * [[Turnigy 9x]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Arduino Printer Control (Städtische Bühnen Münster)]] * [[Arduino und das Imax B6 Ladegerät]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 4ef726a6962a26bd9d1fb68a2ca20d8e3653459f 189 172 2018-02-04T14:02:07Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] * [[Turnigy 9x]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor mit Arduino]] * [[Arduino Printer Control (Städtische Bühnen Münster)]] * [[Arduino und das Imax B6 Ladegerät]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] f6de54de1f4cba61274b088859b2f645fce84df8 190 189 2018-02-04T14:03:38Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] * [[Turnigy 9x]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Arduino Printer Control (Städtische Bühnen Münster)]] * [[Arduino und das Imax B6 Ladegerät]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 4ef726a6962a26bd9d1fb68a2ca20d8e3653459f 191 190 2018-02-04T14:04:05Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] * [[Turnigy 9x]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Open Energy Monitor mit ESP32]] * [[Arduino Printer Control (Städtische Bühnen Münster)]] * [[Arduino und das Imax B6 Ladegerät]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] d77b7c36f5d925e2e872ad7e0d6fddacdfc33226 192 191 2018-02-04T14:04:18Z Admin 1 /* Arduino */ wikitext text/x-wiki == Willkommen beim Technik Fan Wiki == == Linux und VDR == * [[Alle Senders eines Transponders anzeigen lassen]] * [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]] * [[Der PC als Temperatur Sensor - Digitemp]] * [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]] * [[ISDN Anrufbeantworter mit Capisuite]] == Hardware == * [[Einfache Steuerung der parallelen Schnittstelle]] * [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]] * [[Isotronic 5 in 1 Detektor verbessern]] * [[Turnigy 9x]] == Arduino == * [[Arduino MIDI Input]] * [[Open Energy Monitor]] * [[Open Energy Monitor mit dem ESP32]] * [[Arduino Printer Control (Städtische Bühnen Münster)]] * [[Arduino und das Imax B6 Ladegerät]] == Sonstiges == * [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage] 04839fed6a17b8bc2e3632e42041a59ce3a1c4cf Turnigy 9x 0 43 156 2012-02-15T18:44:30Z Admin 1 Die Seite wurde neu angelegt: „In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anst…“ wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude -c avrispv2 -p m64 -v -P usb c0ed95a04282bed71a49639a5a2b4c562e50edc5 157 156 2012-02-15T19:02:04Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude -c avrispv2 -p m64 -v -P usb avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. a1d8333ecdf3dc4afb6638a68780850165031966 158 157 2012-02-15T19:11:41Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude -c avrispv2 -p m64 -v -P usb avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. Um den Fehler zu beseitigen: * Sender Ausschalten * Alle Kabel zum Programmer verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken 6b4c6ff74691ea62e0cee9b9d13413fdfbd017e7 159 158 2012-02-15T19:12:32Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude -c avrispv2 -p m64 -v -P usb avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. Um den Fehler zu beseitigen: * Sender Ausschalten * Alle Kabel zum Programmer verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. 3b5a6ad52876c979a326fd521909132124a4bc7d 160 159 2012-02-15T19:12:52Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude -c avrispv2 -p m64 -v -P usb avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. 089ee660d3cd6dca2ffc69a44f8fe01c0dab6264 161 160 2012-02-15T19:13:41Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude -c avrispv2 -p m64 -v -P usb avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken avrdude -c avrispmkII -p m64 -v -P usb Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. 920314bb224b1f8cb349887bd1dbd59cb303aa75 162 161 2012-02-15T19:13:52Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken avrdude -c avrispmkII -p m64 -v -P usb Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. dacdfd7e45235c8c6ba9589264050efc49ccc1d6 163 162 2012-02-15T19:14:27Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken avrdude -c avrispmkII -p m64 -v -P usb Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. 2ed96ea41bc72932bc7c20fcfcd2d4d3a1f09f9d 164 163 2012-02-15T19:14:39Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken '''avrdude -c avrispmkII -p m64 -v -P usb''' Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. 7985ed997686dcaf90a9df78744ee6799ff17ac1 165 164 2012-02-15T19:23:16Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken * Sender Einschalten '''avrdude -c avrispmkII -p m64 -v -P usb''' Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. 212ebfa70bd848a459ec8531083aac09f97c0a8e 166 165 2012-02-15T19:26:16Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken * Sender Einschalten '''avrdude -c avrispmkII -p m64 -v -P usb''' Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. Backup anlegen: avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading flash memory: Reading | ################################################## | 100% 12.38s avrdude: writing output file "backupflash.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. 0b7fc8679b5881cff759c509733760018419862e 167 166 2012-02-15T19:32:24Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken * Sender Einschalten '''avrdude -c avrispmkII -p m64 -v -P usb''' Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. Backup anlegen: '''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading flash memory: Reading | ################################################## | 100% 12.38s avrdude: writing output file "backupflash.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. '''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading eeprom memory: Reading | ################################################## | 100% 0.43s avrdude: writing output file "backupeeprom.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. Flashen: Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren... '''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb''' 3c92152dd970e3e39486c774142de7af30b1765f 168 167 2012-02-15T19:33:14Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken * Sender Einschalten '''avrdude -c avrispmkII -p m64 -v -P usb''' Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. Backup anlegen: '''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading flash memory: Reading | ################################################## | 100% 12.38s avrdude: writing output file "backupflash.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. '''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading eeprom memory: Reading | ################################################## | 100% 0.43s avrdude: writing output file "backupeeprom.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. Flashen: Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren... '''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb''' <source lang=text> avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "th9x.bin" avrdude: input file th9x.bin auto detected as raw binary avrdude: writing flash (44956 bytes): Writing | ################################################## | 100% 9.47s avrdude: 44956 bytes of flash written avrdude: verifying flash memory against th9x.bin: avrdude: load data flash data from input file th9x.bin: avrdude: input file th9x.bin auto detected as raw binary avrdude: input file th9x.bin contains 44956 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 8.71s avrdude: verifying ... avrdude: 44956 bytes of flash verified avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. </source> e58ad0f42d405801223a7125f4dda7d1f8aa2877 Arduino MIDI Input 0 16 169 62 2012-03-06T09:35:52Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> '''Arduino Sketch:''' <source lang="c"> //Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250 int incomingByte = 0; // for incoming serial data int temp = 0; int i1=0; void setup() { Serial.begin(31250); Serial3.begin(31250); } void loop() { incomingByte = Serial3.read(); if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { if (temp == 144 or temp == 0) { switch (incomingByte) { case 96: Serial.println("Note: 96"); break; case 95: Serial.println("Note: 95"); break; case 94: Serial.println("Note: 94"); break; case 93: Serial.println("Note: 93"); break; } } temp = incomingByte; Serial.println(incomingByte); i1=0; } } </source> Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard: <source lang="text"> 102 30 30 38 32 102 6 56 38 30 102 128 32 6 </source> [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> [[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR> [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR> =Quellen= * http://www.rn-wissen.de/index.php/MIDI-Interface c3d46e92153aa5178f285f269ca95d74d742195c 170 169 2012-03-06T09:36:34Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> '''Arduino Sketch:''' <source lang="c"> //Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250 int incomingByte = 0; // for incoming serial data int temp = 0; int i1=0; void setup() { Serial.begin(31250); Serial3.begin(31250); } void loop() { incomingByte = Serial3.read(); if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { if (temp == 144 or temp == 0) { switch (incomingByte) { case 96: Serial.println("Note: 96"); break; case 95: Serial.println("Note: 95"); break; case 94: Serial.println("Note: 94"); break; case 93: Serial.println("Note: 93"); break; } } temp = incomingByte; Serial.println(incomingByte); i1=0; } } </source> Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard: <source lang="text"> 102 30 30 38 32 102 6 56 38 30 102 128 32 6 </source> [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> [[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR> [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR> =Quellen= * http://www.rn-wissen.de/index.php/MIDI-Interface cbcdc3816f42c305f2dbbd1f822a8e89019fcfe5 171 170 2012-03-06T09:37:05Z Admin 1 wikitext text/x-wiki ==Experimente mit dem Arduino Mega und Midi Input.== '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR> Din Buchse Halbrund<BR> '''Arduino Sketch:''' <source lang="c"> //Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250 int incomingByte = 0; // for incoming serial data int temp = 0; int i1=0; void setup() { Serial.begin(31250); Serial3.begin(31250); } void loop() { incomingByte = Serial3.read(); if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { if (temp == 144 or temp == 0) { switch (incomingByte) { case 96: Serial.println("Note: 96"); break; case 95: Serial.println("Note: 95"); break; case 94: Serial.println("Note: 94"); break; case 93: Serial.println("Note: 93"); break; } } temp = incomingByte; Serial.println(incomingByte); i1=0; } } </source> Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard: <source lang="text"> 102 30 30 38 32 102 6 56 38 30 102 128 32 6 </source> Schaltplan: http://www.rn-wissen.de/index.php/MIDI-Interface [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> [[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR> [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR> c8b29fa929f1a5de44af84ffa468283d7d3005d4 Arduino und das Imax B6 Ladegerät 0 44 173 2012-04-20T14:09:43Z Admin 1 Die Seite wurde neu angelegt: „=Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. ==Hardware== Damit der Ardui…“ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen 5ec88b7518e75793b1666e3685da0d23080f5da4 178 173 2012-04-20T14:29:07Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. 67816be0dd29d9eda941c4c547582fbb6a33d28b 179 178 2012-04-20T14:31:52Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download a90a105b1ccf5ae6049477e5dcb85fbbea2c4717 180 179 2012-04-20T14:41:16Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download af3a2e3700e2aa76ab3dc0613e6254a94c4a44e5 182 180 2012-04-20T14:43:17Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info [[Datei:Lipo160mAh.jpg|800px|Imax B6]] = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download 692a5389fbff093495618690fd3548744464d7b3 184 182 2012-04-20T14:50:27Z Admin 1 /* Auswertung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info Turnigy 160 mAh (Hobbyking) [[Datei:Lipo160mAh.jpg|800px|Imax B6]] Lidl Loop Low Self Discharge Zelle (ähnlich Eneloop) [[Datei:LidlLoop.jpg|800px|Imax B6]] = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download a5ffe664ceeed9c75ac1ffd563b0c92f26d42ce4 185 184 2012-04-20T14:51:39Z Admin 1 /* Auswertung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info Turnigy 160 mAh (Hobbyking) [[Datei:Lipo160mAh.jpg|800px|Imax B6]] Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop) [[Datei:LidlLoop.jpg|800px|Imax B6]] = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download 83c0bf61914b6a7f0ee3666bf6126be0f23aed90 186 185 2012-04-20T14:53:41Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info Turnigy 160 mAh (Hobbyking) [[Datei:Lipo160mAh.jpg|800px|Imax B6]] Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop) [[Datei:LidlLoop.jpg|800px|Imax B6]] = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download b415e712b80fb301fa9a5170da730d7dbde80594 187 186 2012-04-20T14:56:25Z Admin 1 /* Auswertung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info Turnigy 160 mAh (Hobbyking) Zugeführte Ladung: 130 mAh [[Datei:Lipo160mAh.jpg|800px|Imax B6]] Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop) Zugeführte Ladung: 2230 mAh Entladen (200 mAh): 1720 mAh [[Datei:LidlLoop.jpg|800px|Imax B6]] = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download 392cbafc0b05efbd94ea9e13d34f7c02a5e9a53b 188 187 2012-04-20T14:56:54Z Admin 1 /* Auswertung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info Turnigy 160 mAh (Hobbyking) Zugeführte Ladung: 130 mAh [[Datei:Lipo160mAh.jpg|800px|Imax B6]] Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop) Zugeführte Ladung: 2230 mAh Entladen (200 mAh): 1720 mAh [[Datei:LidlLoop.jpg|800px|Imax B6]] = Weblinks = * http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page * http://www.logview.info/vBulletin/downloads.php Logview Download 245c1a475e02dcb042e05f86aebad40186888758 Datei:Imaxb6 1.jpg 6 45 174 2012-04-20T14:16:19Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Imaxb6 2.jpg 6 46 175 2012-04-20T14:20:41Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Imaxb6 3.jpg 6 47 176 2012-04-20T14:23:38Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Imaxb6 4.jpg 6 48 177 2012-04-20T14:25:35Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:Lipo160mAh.jpg 6 49 181 2012-04-20T14:41:26Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:LidlLoop.jpg 6 50 183 2012-04-20T14:48:54Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Open Energy Monitor mit dem ESP32 0 51 193 2018-02-04T14:07:38Z Admin 1 Die Seite wurde neu angelegt: „=Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. '''Fol…“ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss be96ed4bef0f36317d7c0d993a856eb8c95b3e4c 194 193 2018-02-04T14:16:56Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss Pinbelegung des DOIT ESP32 DEVKIT V1 Board: https://github.com/playelek/pinout-doit-32devkitv1 5e749cb3c215fc9b545d8524659e38b256163171 195 194 2018-02-04T14:17:14Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 97672b4be56c2a0f3738ed6fb3e207b0cf719255 197 195 2018-02-04T14:37:03Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Aufbau= [[Datei:ESP32 01|Open Energie Monitor mit dem ESP32]] 89b43a73c4384d2e0eb008395a7d1ed9cab6f56c 198 197 2018-02-04T14:37:28Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Aufbau= [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] 7f85be94cd4af5a1186d0f6ad7ea1044b3aec7ec 199 198 2018-02-04T14:43:58Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] abe0fa36bd4765236c0c424cab244c18be72fdf3 201 199 2018-02-04T14:46:10Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. [[Datei:ESP32 02.png|Open Energie Monitor mit dem ESP32]] [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] 4fe662c297f7235ca83b3ebe4f1c915e86656cbc Datei:ESP32 01.png 6 52 196 2018-02-04T14:36:10Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:ESP32 02.png 6 53 200 2018-02-04T14:45:43Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Open Energy Monitor mit dem ESP32 0 51 202 201 2018-02-04T16:10:08Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. [[Datei:ESP32 02.png|700px|Open Energie Monitor mit dem ESP32]] [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] 45e2656a410397349e552f76e51eb1c495074233 204 202 2018-02-04T16:11:49Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. [[Datei:ESP32 02.png|700px|Open Energie Monitor mit dem ESP32]] Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. [[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]] [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] c674eac72c9ec4e024b6311f2f888121f72a3ba9 205 204 2018-02-04T16:12:34Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. [[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]] [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] df52e92ac159700dc64753b4303820e0b031f01e 207 205 2018-02-04T16:33:21Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. [[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]] [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] b300f74646544c716601a1b95bca61a1e38174be 208 207 2018-02-04T16:35:57Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. [[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]] [[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. db8f65693af422415a02f1f65bbde22ab285247a 209 208 2018-02-04T16:36:34Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. 493777fecf720f5f4d888100587d15aa6e773366 211 209 2018-02-04T16:45:05Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] 2cbe61d451396f3109e8e5d5bd766dabf0a30611 212 211 2018-02-04T16:45:35Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 02.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] 97ec6dc082ecf87f1337c3700723c99888e80849 215 212 2018-02-04T16:53:31Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 02.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. 352fdc599668673fb67f693de001b26ca1df899c 216 215 2018-02-04T16:54:38Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. f75a12ad35e8e3b204409f1cb7f7d6b26d0b2a46 217 216 2018-02-04T16:58:55Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: e7778b9c93fca3825bd3f82d47f40ff36e8c4779 218 217 2018-02-04T18:17:04Z Admin 1 /* Software */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ce10c31bc1b42f5ac19858a66be0707759df10f9 219 218 2018-02-04T18:30:06Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Um die Stromsensoren zu kalibrieren müssen möglicherweise folgende Variablen geändert werden: ICAL, inPinI1 filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //0.998 //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> d67fe2500e2fd5812caeea7c872ebf51412b5504 220 219 2018-02-04T18:33:53Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Um die Stromsensoren zu kalibrieren müssen möglicherweise folgende Variablen geändert werden: ICAL = Kalibrierung inPinI1 = ADC Pin filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //0.998 //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 9d00620fac4b5aebca11cc92ce7ebba2b5e9a708 221 220 2018-02-04T18:34:22Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Um die Stromsensoren zu kalibrieren müssen möglicherweise folgende Variablen geändert werden: '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //0.998 //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> d416e84f869fb07faa9650e03cee773f8d096873 222 221 2018-02-04T18:39:29Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> b1f1d9d1df323c771521f26b751057131c310494 223 222 2018-02-04T18:41:24Z Admin 1 /* Software */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> cab5f78d03132ee2d6a3b6ec0ea5397d9b5d50d3 224 223 2018-02-04T18:42:33Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> d663a1ce3c3fdeb940d0aba8a0dfa4f222357666 225 224 2018-02-04T18:43:58Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut: <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ee3b4fdd7f7b9e6edc2a8d726fced9cec93b9197 227 225 2018-02-04T18:50:45Z Admin 1 /* Spezielle Hinweise für den ESP32 */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 0f8b4197b6748c44f93ab03f0df38f0bd2a0fff4 229 227 2018-02-04T18:59:17Z Admin 1 /* Aufbau */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 753f473a9f337ff5e9cfcc0c7e74b0d4d35762e1 230 229 2018-02-04T19:03:36Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 2c5353fa7c96d42f9623b0f033c61ede755da2cb 231 230 2018-02-05T12:26:14Z Admin 1 /* Aufbau */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> b911b7f3357bfd5341337e3d6cf7214f3d119c27 232 231 2018-02-05T12:26:49Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 17a2b52082c9310a44735f43c46ebba5701593d6 233 232 2018-02-05T12:29:46Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung '''inPinI1''' = ADC Pin filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 87d2b7e0dd7d783cb3eaec8238ee82352d7b9d40 234 233 2018-02-05T12:30:21Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 237c38f7e4d67a393739827d4e3add10620ba052 235 234 2018-02-05T12:32:13Z Admin 1 /* Einleitung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> c098f044fe20cb322e1a48f5a976fac60b7c8a74 236 235 2018-02-05T12:39:32Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> f6d5f5d0e8e659a1d2b55f5b2323405a056ad3fd 237 236 2018-02-05T12:41:23Z Admin 1 /* Spezielle Hinweise für den ESP32 */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); //WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 8554d6304cd0f692659f2ae93dd5ea9219ede7be 238 237 2018-02-05T12:42:46Z Admin 1 /* Spezielle Hinweise für den ESP32 */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { // put your setup code here, to run once: } //WiFi Part const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ae09e040a1ad9f3c2ba23078eaf054d1f68b34ee 239 238 2018-02-05T12:43:53Z Admin 1 /* Spezielle Hinweise für den ESP32 */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> 507690fedfd422b6c4aa89ec63eb40cc74f2a486 241 239 2018-02-05T13:04:32Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Download Arduino Sketch== [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> fc7317b939130e7e9d33f297070e58b2ad100309 242 241 2018-02-05T13:06:18Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ==Download Arduino Sketch== Ihr müsst das Programm noch an Eure WLAN und EMON Server Werte anpassen. [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] 8e6bcf4e21a1bbae89e1a44d4ba0a584cd87527b 243 242 2018-02-05T13:06:34Z Admin 1 /* Download Arduino Sketch */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ==Download Arduino Sketch== '''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Werte anpassen.''' [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] d549d64ae39246acebab9a6629547dd99db8d2a4 244 243 2018-02-05T13:06:46Z Admin 1 /* Download Arduino Sketch */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ==Download Arduino Sketch== '''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.''' [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] 77f75e607ac757108feaeaeafe91283c033426b6 245 244 2018-02-05T13:09:11Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ==Download Arduino Sketch== '''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.''' [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] = Weblinks = * https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page a8028d0e7f1e5e9965050dffa5d41e51169d8ea8 246 245 2018-02-05T13:11:54Z Admin 1 /* Kalibrierung */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ==Download Arduino Sketch== '''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.''' [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] = Weblinks = * https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page 6a28091608cdea30a48cb82c064470f1301f6960 249 246 2018-02-06T07:07:14Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ==Download Arduino Sketch== '''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.''' [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] =Emoncms= In Emoncms kann nun ein schönes Dashboard erstellt werden. Dazu gibt es bereits bei den Inputs die Funktionen "Power to kWh und Power to kWh/d". [[Datei:ESP32 07.png|700px|Klicken um zu vergrößern]] = Weblinks = * https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page 32fa479a7f9bc92b8515e407c0b805fbd4d1ae15 250 249 2018-02-06T07:07:52Z Admin 1 /* Emoncms */ wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen. '''Folgende Bauteile werden benötigt:''' -Board: DOIT ESP32 DEVKIT V1 (ca. 10€) -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -6x 10kOhm Widerstände 1/4W -3x Elko 10 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3 x 3,5 mm Audio Anschluss -Optional: 1000uF / 10V Kondensator zur Stabilisierung '''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:''' https://github.com/playelek/pinout-doit-32devkitv1 =Grundlagen= Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang. https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino =Aufbau= Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken. [[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]] [[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]] =Software= Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden: https://github.com/espressif/arduino-esp32 Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board. [[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]] ==Spezielle Hinweise für den ESP32== Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen. Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig. <source lang=c++> #include <Arduino.h> #include <WiFi.h> //WiFi const char* ssid = "AccessPoint"; const char* password = "pass"; //WiFi void WIFI_Connect() { digitalWrite(2,1); WiFi.disconnect(); Serial.println("Booting Sketch..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); // Wait for connection for (int i = 0; i < 25; i++) { if ( WiFi.status() != WL_CONNECTED ) { delay ( 250 ); digitalWrite(2,0); Serial.print ( "." ); delay ( 250 ); digitalWrite(2,1); } } digitalWrite(2,0); } void setup() { Serial.begin(115200); delay(500); //WiFi Part WIFI_Connect(); } void loop() { //Wifi WatchDog WiFi.onEvent(WiFiEvent); //Check if WiFi is here //Automatically reconnect the ESP32 if the WiFi Router is not there... if (WiFi.status() != WL_CONNECTED) { WiFi.onEvent(WiFiEvent); WIFI_Connect(); } else { //Do something if the WiFi is available } } //Wifi Watchdog void WiFiEvent(WiFiEvent_t event) { Serial.printf("[WiFi-event] event: %d - ", event); switch(event) { case SYSTEM_EVENT_STA_GOT_IP: Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; case SYSTEM_EVENT_STA_START: Serial.println("ESP32 station start"); break; case SYSTEM_EVENT_STA_CONNECTED: Serial.println("ESP32 station connected to AP"); break; case SYSTEM_EVENT_STA_LOST_IP: Serial.println("ESP32 Lost IP"); WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<< ESP.restart(); break; } } </source> ==Kalibrierung== Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V. '''ICAL''' = Kalibrierung filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset <source lang=c++> #include <Arduino.h> #include <WiFi.h> void setup() { Serial.begin(115200); delay(500); } //Setup variables int numberOfSamples = 4000; double ICAL = 1.08; //Set Voltage and current input pins int inPinI1 = 34; // CT: Voltage depends on current, burden resistor, and turns #define CT_BURDEN_RESISTOR 62 #define CT_TURNS 1800 #define VOLTAGE 225 // Initial gueses for ratios, modified by VCAL/ICAL tweaks double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL; //Filter variables 1 double lastFilteredI, filteredI; double sqI,sumI; //Sample variables int lastSampleI,sampleI; double Irms1; unsigned long timer; void loop() { timer = millis(); //************************************************************************** //Phase1 for (int n=0; n<numberOfSamples; n++) { //Used for offset removal lastSampleI=sampleI; //Read in voltage and current samples. sampleI = analogRead(inPinI1); //Used for offset removal lastFilteredI = filteredI; //Digital high pass filters to remove 1.6V DC offset. filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Root-mean-square method current //1) square current values sqI = filteredI * filteredI; //2) sum sumI += sqI; delay(0.0002); } //Calculation of the root of the mean of the voltage and current squared (rms) //Calibration coeficients applied. Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06; if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero sumI = 0; Serial.println("Irms1:"+String(Irms1)); } </source> ==Download Arduino Sketch== '''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.''' [[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]] =Emoncms= In Emoncms kann nun ein schönes Dashboard erstellt werden. Dazu gibt es bereits bei den Inputs die Funktionen "Power to kWh und Power to kWh/d". [[Datei:ESP32 07.png|700px|Klicken um zu vergrößern]] Die Werte können nun alle im Dashboard angezeigt werden. [[Datei:ESP32 06.png|700px|Klicken um zu vergrößern]] = Weblinks = * https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page ccccf97816c19954ef28f029b7f6f9e661c434f7 Datei:ESP32 03.png 6 55 203 2018-02-04T16:11:14Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 206 203 2018-02-04T16:13:38Z Admin 1 Admin lud eine neue Version von „[[Datei:ESP32 03.png]]“ hoch wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 210 206 2018-02-04T16:44:12Z Admin 1 Admin lud eine neue Version von „[[Datei:ESP32 03.png]]“ hoch wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 213 210 2018-02-04T16:48:15Z Admin 1 Admin lud eine neue Version von „[[Datei:ESP32 03.png]]“ hoch wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:ESP32 04.png 6 56 214 2018-02-04T16:49:04Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Open Energy Monitor 0 20 226 154 2018-02-04T18:47:39Z Admin 1 wikitext text/x-wiki '''Achtung: Es gibt inzwischen eine neue Version des Open Energy Monitors mit dem ESP32 und WLAN: [[Open Energy Monitor mit dem ESP32]]''' =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> Hier ein Beispiel für eine schöne Übersicht auf Deutsch: <source lang=php> <div class="widget-container-nc"> <h2>Energie Explorer</h2> <iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&amp;kwhd=7&amp;power=4" frameborder="0" scrolling="no"> </iframe> </div> <div class="widget-container-v" style="height:562px"> <div class="widget"> <div class="title">Aktueller Energie Verbrauch<b></b></div><b> <div class="dial" feed="power" max="5000" units="W" scale="1"></div> </b></div><b> <div style="clear:both;"></div><br> <div class="stats" style="height:70px"> <b>Heutiger Energieverbrauch</b><br> <div class="value"><span class="kwhd"></span> kWh</div> </div> <div class="widget"> <div id="house-graph" class="graph" feed="power"></div> </div> </b></div> <iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> </source> Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern: vim /emon/Vis/kWhdZoomer/view.js vim /emon/Vis/kWhdZoomer/kwhdzoomer.php Ergibt z.B. folgendes Dashboard: [[Datei:emon17.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org/emon/emoncms Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration 9344ce86628d406d3972828bd83265c5eed67df2 Datei:ESP32 05.png 6 57 228 2018-02-04T18:58:42Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:EmonCMS ESP32 v1.zip 6 58 240 2018-02-05T13:03:05Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:ESP32 06.png 6 59 247 2018-02-06T07:03:43Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:ESP32 07.png 6 60 248 2018-02-06T07:05:42Z Admin 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten 0 3 253 13 2025-02-25T14:45:30Z Admin 1 wikitext text/x-wiki '''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!''' In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar. WLAN Verbindung im Netzwerkmanager deaktivieren: rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen ifconfig eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC: inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0 inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:107 errors:0 dropped:0 overruns:0 frame:0 TX packets:126 errors:0 dropped:0 overruns:0 carrier:2 Kollisionen:0 Sendewarteschlangenlänge:1000 RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b) Speicher:fbfc0000-fc000000 Physische WLAN Schnittstelle herunterfahren: ifconfig wifi0 down Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen: wlanconfig ath10 create wlandev wifi0 wlanmode monitor Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst): iwconfig ath01 IEEE 802.11g ESSID:"" Nickname:"" Mode:Monitor Channel:0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 Physische Schnittstelle hochfahren: ifconfig wifi0 up Airmon Schnittstelle zuweisen: airmon-ng start ath01 Airodump starten: airodump-ng ath01 Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt. Test [[Datei:Airodump-wlans.png|Airodump WLAN]] d89f33d9c77555d91a67db0d2af96bedb55197dc Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten 0 3 254 253 2025-02-25T14:45:43Z Admin 1 wikitext text/x-wiki '''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!''' In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar. WLAN Verbindung im Netzwerkmanager deaktivieren: rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen ifconfig eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC: inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0 inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:107 errors:0 dropped:0 overruns:0 frame:0 TX packets:126 errors:0 dropped:0 overruns:0 carrier:2 Kollisionen:0 Sendewarteschlangenlänge:1000 RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b) Speicher:fbfc0000-fc000000 Physische WLAN Schnittstelle herunterfahren: ifconfig wifi0 down Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen: wlanconfig ath10 create wlandev wifi0 wlanmode monitor Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst): iwconfig ath01 IEEE 802.11g ESSID:"" Nickname:"" Mode:Monitor Channel:0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 Physische Schnittstelle hochfahren: ifconfig wifi0 up Airmon Schnittstelle zuweisen: airmon-ng start ath01 Airodump starten: airodump-ng ath01 Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt. [[Datei:Airodump-wlans.png|Airodump WLAN]] f84c21958bb4cdc2c675027deaa1ad2cc131b1fb Arduino Printer Control (Städtische Bühnen Münster) 0 39 255 147 2025-02-25T14:46:57Z Admin 1 wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. Test =MIDI Steuerung= Siehe: [[Arduino MIDI Input]] [[Datei:KeyBoard.png|Keyboard Belegung]] [[Datei:Theater1.jpg|800px|Keyboard Belegung]] Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek?authuser=0&feat=directlink|Picasa] 41659d58991bed9d0d4224c53af3a904623eed8b 256 255 2025-02-25T14:47:02Z Admin 1 /* Einleitung */ wikitext text/x-wiki =Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen. =MIDI Steuerung= Siehe: [[Arduino MIDI Input]] [[Datei:KeyBoard.png|Keyboard Belegung]] [[Datei:Theater1.jpg|800px|Keyboard Belegung]] Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek?authuser=0&feat=directlink|Picasa] 1ee8c00aced1dd7de38c179722505a523a6309d5 Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox 0 7 257 28 2025-02-26T12:49:00Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <syntaxhighlight lang="bash" line> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </syntaxhighlight> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben fce93d75b75feb1a696ef2fb122c88df5e3bc834 258 257 2025-02-26T12:49:52Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <syntaxhighlight lang="C" line> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </syntaxhighlight> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben f08d725b90e55b1561ddc158ecfd0bf95e08c18f 259 258 2025-02-26T12:50:30Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <syntaxhighlight lang="bash" line> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </syntaxhighlight> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben fce93d75b75feb1a696ef2fb122c88df5e3bc834 260 259 2025-02-26T12:55:54Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <syntaxhighlight lang="bash"> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </syntaxhighlight> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben 3afaa6208d48251df1b5ba947461b4bd965e0202 261 260 2025-02-26T12:56:10Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <syntaxhighlight lang="bash"> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </syntaxhighlight> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben 06d0af86c00e81bc5ca934cddaea42bb1ffaeaf2 262 261 2025-02-26T13:24:50Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <syntaxhighlight lang="bash"> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </syntaxhighlight> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben <syntaxhighlight lang="python" line> def quick_sort(arr): less = [] pivot_list = [] more = [] if len(arr) <= 1: return arr else: pass </syntaxhighlight> a6c33c31282d33adea9ac2487cf29f94c2024ca9 263 262 2025-02-26T13:26:34Z Admin 1 wikitext text/x-wiki ==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen. 2. Debian Grundkonfiguration: Nameserver anpassen: vim /etc/resolv.conf Standard Software installieren: apt-get update apt-get install vim unp bzip2 Exim4 entfernen, da Mailserver nicht benötigt wird: apt-get remove --purge exim4 Syntax Highlighting aktivieren: vim /etc/vim/vimrc Die Zeile " syntax on einkommentieren syntax on Falls DHCP gewünscht wird müssen die Interfaces angepasst werden: vim /etc/network/interfaces In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert. vim /etc/apt/sources.list <syntaxhighlight lang="bash"> deb http://ftp.at.debian.org/debian/ stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # VDR deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch </syntaxhighlight> apt-get update '''ACHTUNG NICHT: apt-get upgrade ausführen''' Nun verbindet man sich am besten per SSH zur XBOX. 3. XServer Installation: apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base vim /etc/X11/xorg.conf <source lang=bash> Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "Device" Identifier "nVidia Corporation GeForce3 MX for XBox" # Driver "nv" Driver "nvxbox" Option "UseFBDev" "true" Option "HWCursor" "false" # Option "NoAccel" "true" EndSection Section "Device" Identifier "Frame Buffer" Driver "fbdev" Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-32 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "nVidia Corporation GeForce3 MX for XBox" # Device "Frame Buffer" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "640x480" EndSubSection SubSection "Display" Depth 4 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection SubSection "Display" Depth 15 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "640x480" EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection </source> 4. Init Skript anpassen: vim /etc/init.d/xorg <source lang=bash> #! /bin/sh ### BEGIN INIT INFO # Provides: X4VDR # Required-Start: $local_fs # Required-Stop: vdr # Default-Start: 2 # Default-Stop: # Short-Description: X-Server for VDR # Description: Starts the X-Server for the VDR. ### END INIT INFO # # Author: Helmar Gerloni <helmar@gerloni.net> # Version: 2006-09-13 # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="X-Server for VDR" NAME=X4VDR PIDFILE=/var/run/$NAME\.pid SCRIPTNAME=/etc/init.d/$NAME # # Function that starts X. # d_start() { vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 & start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp if [ $? -gt 0 ]; then echo "Error starting X-Server." exit $? fi } # # Function that stops X. # d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE if [ $? -gt 0 ]; then echo "Error stopping X-Server." fi } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "."  ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "."  ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1  ;; esac exit 0 </source> Das Script ausführbar machen mit: chmod ug+x /etc/init.d/xorg Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach: /etc/init.d/xorg start eingeben 06d0af86c00e81bc5ca934cddaea42bb1ffaeaf2 Alle Senders eines Transponders anzeigen lassen 0 2 264 8 2025-02-26T13:28:01Z Admin 1 wikitext text/x-wiki '''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen''' In das VDR Verzeichniss wechseln: cd /etc/vdr Die Senderliste anzeigen lassen: vim channels.conf Für das Erste z.B. erscheint dieser Eintrag: Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 Die Nummer des Transponders beträgt in diesem Fall: 410000. Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt: grep 410000 channels.conf Ausgabe: <syntaxhighlight lang="bash"> Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0 BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0 arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0 hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0 Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0 SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0 Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0 Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0 <\syntaxhighlight> 1dbbf5133b30960b828659d35716a0c77a3b2747 265 264 2025-02-26T13:28:25Z Admin 1 wikitext text/x-wiki '''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen''' In das VDR Verzeichniss wechseln: cd /etc/vdr Die Senderliste anzeigen lassen: vim channels.conf Für das Erste z.B. erscheint dieser Eintrag: Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 Die Nummer des Transponders beträgt in diesem Fall: 410000. Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt: grep 410000 channels.conf Ausgabe: <syntaxhighlight lang="bash"> Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0 BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0 arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0 hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0 Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0 SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0 Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0 Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0 </syntaxhighlight> e79ced5e9fee43e121ad576a899b1301902f33bd 266 265 2025-02-26T13:28:33Z Admin 1 wikitext text/x-wiki '''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen''' In das VDR Verzeichniss wechseln: cd /etc/vdr Die Senderliste anzeigen lassen: vim channels.conf Für das Erste z.B. erscheint dieser Eintrag: Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 Die Nummer des Transponders beträgt in diesem Fall: 410000. Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt: grep 410000 channels.conf Ausgabe: <syntaxhighlight lang="C"> Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0 WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0 BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0 arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0 hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0 Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0 SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0 Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0 Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0 </syntaxhighlight> b85ef3390a094d15ab2caa96b4a944376e05bc7e Arduino und das Imax B6 Ladegerät 0 44 267 188 2025-02-26T13:29:21Z Admin 1 wikitext text/x-wiki =Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann. ==Hardware== Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt. [[Datei:Imaxb6 1.jpg|Imax B6]] =Aufbau= Anschluß des Imax B6 Ladegerätes an den Arduino [[Datei:Imaxb6 3.jpg|Imax B6]] Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut. [[Datei:Imaxb6 2.jpg|Imax B6]] Der ganze Aufbau mit dem Ladegerät sieht dann so aus: [[Datei:Imaxb6 4.jpg|Imax B6]] ==Auswertung== Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info Turnigy 160 mAh (Hobbyking) Zugeführte Ladung: 130 mAh [[Datei:Lipo160mAh.jpg|800px|Imax B6]] Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop) Zugeführte Ladung: 2230 mAh Entladen (200 mAh): 1720 mAh [[Datei:LidlLoop.jpg|800px|Imax B6]] bb0c3568afb9d779a6327ba71ff4a02f85976646 Der PC als Temperatur Sensor - Digitemp 0 5 268 37 2025-02-26T13:29:59Z Admin 1 wikitext text/x-wiki '''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.''' Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche Bauanleitung findet ihr hier: https://systemausfall.org/wikis/howto/DigiTemp Nun müssen wir das Programm digitemp installieren: apt-get install digitemp Konfiguration initialisieren: digitemp_DS9097 -i -s0 -q -c /root/digitemp.cfg Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit: digitemp_DS9097 -i ttyS0 Die Ausgabe sollte dann so aussehen: Searching the 1-Wire LAN 106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 106C6C7C01080012 Wrote .digitemprc Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden: apt-get install rrdtool Nun erstellen wir ein paar Scripte unter /auktion/rrdtool cd /auktion/rrdtool vim erzeugepng.sh Die Datei sollte mit folgendem Inhalt gefüllt werden: nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \ -l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \ DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \ DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \ DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \ VDEF:g1a=g1,LAST \ VDEF:gmina=gmin,MINIMUM \ VDEF:gmaxa=gmax,MAXIMUM \ LINE2:g1#ff0000:"Zimmer Temperatur" \ GPRINT:g1a:"aktuell\: %5.2lf °C" \ COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n" Datei ausführbar machen mit: chmod ug+x erzeugepng.sh Wenn alles geklappt hat erscheint nach Eingabe von: ./erzeugepng.sh unter dem Ordner /var/www/temperatur.png die Grafik... a76514ac1d3e539a75d2956fc58875f4bb25687f Einfache Steuerung der parallelen Schnittstelle 0 6 269 24 2025-02-26T13:30:33Z Admin 1 wikitext text/x-wiki Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden. Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten. Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen. Als erstes sollten die benötigten Module geladen werden: modprobe parport modprobe ppdev lsmod|grep parport sollte dann folgende Ausgaben produzieren: parport_pc 32132 0 parport 33256 2 ppdev,parport_pc nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind: apt-get install build-essential nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686): mkdir /usr/src/blink cd /usr/src/blink Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt: vim blink.c Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag: <syntaxhighlight lang="C"> /*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister) angeschlossen sind blinken. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <linux/ppdev.h> #include <linux/parport.h> #include <sys/ioctl.h> int main() { int fd,loop=0; unsigned char datareg=0xFF; unsigned char controlreg=0x00; struct ppdev_frob_struct frob; /*parallele Schnittstelle öen*/ if((fd = open ("/dev/parport0", O_RDWR))!=-1) { ioctl (fd, PPCLAIM); } else { printf("Konnte Schnittstelle nicht oeffnen\n"); return 1; } /*Pins 2..9 als Ausgang konfigurieren*/ frob.mask = 0x20; frob.val =0x00; ioctl (fd, PPFCONTROL, &frob); /*10 mal LEDs ein- und ausschalten*/ while ((loop++)<1) { datareg=0xFF; ioctl(fd,PPWDATA ,&datareg); sleep(1); datareg=0x00; ioctl(fd,PPWDATA ,&datareg); sleep(1); } /*parallele Schnittstelle schliessen*/ ioctl(fd,PPRELEASE); close(fd); return 0; } </syntaxhighlight > Dann wird ein kleines Makefile erstellt: vim Makefile Inhalt: <source lang=bash> CC = gcc PROG = blink all: $(CC) -c $(PROG).c $(CC) -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~ </source> Nun kompilieren wir das ganze mit: make und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit: ./blink Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen: su www-data ./blink Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden. apt-get install apache php5 cd /var/www mkdir blink chown www-data www-data ../* vim index.php Inhalt der Datei index.php: <source lang=html4strict> <HTML> <TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE> </HEAD> <BODY> <font face="arial"> <CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER> <body bgcolor=ffffe9> </BODY> </HEAD> <CENTER> <html> <?php shell_exec('/usr/src/blink'); echo exec('whoami'); ?> </center> </source> Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.). 507eb6343e8fbd2da7584348a4ec6afe59f86b9e Open Energy Monitor 0 20 270 226 2025-02-26T13:31:32Z Admin 1 /* Weblinks */ wikitext text/x-wiki '''Achtung: Es gibt inzwischen eine neue Version des Open Energy Monitors mit dem ESP32 und WLAN: [[Open Energy Monitor mit dem ESP32]]''' =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> Hier ein Beispiel für eine schöne Übersicht auf Deutsch: <source lang=php> <div class="widget-container-nc"> <h2>Energie Explorer</h2> <iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&amp;kwhd=7&amp;power=4" frameborder="0" scrolling="no"> </iframe> </div> <div class="widget-container-v" style="height:562px"> <div class="widget"> <div class="title">Aktueller Energie Verbrauch<b></b></div><b> <div class="dial" feed="power" max="5000" units="W" scale="1"></div> </b></div><b> <div style="clear:both;"></div><br> <div class="stats" style="height:70px"> <b>Heutiger Energieverbrauch</b><br> <div class="value"><span class="kwhd"></span> kWh</div> </div> <div class="widget"> <div id="house-graph" class="graph" feed="power"></div> </div> </b></div> <iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> </source> Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern: vim /emon/Vis/kWhdZoomer/view.js vim /emon/Vis/kWhdZoomer/kwhdzoomer.php Ergibt z.B. folgendes Dashboard: [[Datei:emon17.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org Official Page * http://vis.openenergymonitor.org Open Energie Monitor Version 3 * http://openenergymonitor.org/emon/node/156 Compare different CT sensors * http://openenergymonitor.org/emon/node/319 EtherLib Configuration 3bc3a9e4f0e1d2dfe9ab39745e9e4a8770855e87 271 270 2025-02-26T13:31:47Z Admin 1 /* Weblinks */ wikitext text/x-wiki '''Achtung: Es gibt inzwischen eine neue Version des Open Energy Monitors mit dem ESP32 und WLAN: [[Open Energy Monitor mit dem ESP32]]''' =Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink '''Folgende Bauteile werden benötigt:''' -Arduino UNO Duemilanove oder kompatibel -Ethernet Shield oder ein anderes kompatibles Shield -Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156 -2x 10kOhm Widerstände 1/4W -1 Elko 47 uF -Universalplatine -evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung -Pfosten Stecker Rastermaß: 2.54mm -3,5 mm Audio Anschluss [[Datei:emon2.png|Open Energie Monitor]] ==Elektrotechnische Grundlagen== Elektrische Leistung wird in Watt gemessen. '''P = U x I''' z.B. P = 230V x 0,5A = 115W In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt. '''1 kWh = 1000W x 1 h''' Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr. ---- Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt. Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet. ''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!''' [[Datei:emon3.jpg|Open Energie Monitor]] =Converter Board= Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54 [[Datei:emon4.jpg|Open Energie Monitor]] [[Datei:emon5.jpg|Open Energie Monitor]] Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose. [[Datei:emon12.jpg|Open Energie Monitor]] =Arduino Sketch= Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein. Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor: [[Media:USBemon.zip|Download Arduino Sketch: USB emon]] ==Kalibrierung== Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering. [[Datei:emon6.jpg|Open Energie Monitor]] Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B. 245.6 245,6 <gallery> Datei:emon7.png|Samsung Fernseher Datei:emon8.png|Wasserkocher und Herdplatten Datei:emon9.png|Energiesparlampe 18W Datei:emon14.png|Stromverbrauch an einem Samstag Abend. </gallery> ==Ethernet Shield und emon== Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier: [[Datei:emon11.jpg|Open Energie Monitor]] An dieser Stelle im Arduino Sketch wird der API Key eingetragen: <source> client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:"); client.print(watt); client.print(",temperature:25.0}"); client.println(); </source> Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden. <source> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,152 }; byte server[] = { 111,111,101,111}; // Enter your IP </source> [[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]] Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur. ---- In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist: ping 192.168.1.152 Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen: tail -f /var/log/apache2/access.log Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben". apt-get install ccze tail -f /var/log/apache2/access.log | '''ccze''' Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei: [[Datei:emon10.png|Open Energie Monitor]] =Software auf dem Server= Download der *.zip Archive: https://github.com/openenergymonitor/emoncms3 Entpacken auf dem Server: cd /var/www/emon wget https://github.com/openenergymonitor/emoncms3/tarball/master mv master openenergymonitor-emoncms3-3a1eb8b.tar unp openenergymonitor-emoncms3-3a1eb8b.tar mv openenergymonitor-emoncms3 emon Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden. vim /etc/apache2/sites-enabled/000-default <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride None''' Order allow,deny allow from all </Directory> muss geändert werden zu <Directory /var/www/nossl/wiki> Options Indexes FollowSymLinks MultiViews '''AllowOverride All''' Order allow,deny allow from all </Directory> Nach einem Neustart des Apache Webservers ist die Seite erreichbar: /etc/init.d/apache2 restart Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden: http://openenergymonitor.org/emon/node/150 ==User Registrierung abschalten== Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden: vim /var/www/emon/Views/user/login_block.php Diese Zeile suchen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" /> und mit dieser Zeile ersetzen: <input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> ==Eigenes Dashboard erstellen== Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt. Also z.B: <iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&amp;'''feedid=4'''" marginwidth="0" frameborder="0" scrolling="no"></iframe> Hier ein Beispiel für eine schöne Übersicht auf Deutsch: <source lang=php> <div class="widget-container-nc"> <h2>Energie Explorer</h2> <iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&amp;kwhd=7&amp;power=4" frameborder="0" scrolling="no"> </iframe> </div> <div class="widget-container-v" style="height:562px"> <div class="widget"> <div class="title">Aktueller Energie Verbrauch<b></b></div><b> <div class="dial" feed="power" max="5000" units="W" scale="1"></div> </b></div><b> <div style="clear:both;"></div><br> <div class="stats" style="height:70px"> <b>Heutiger Energieverbrauch</b><br> <div class="value"><span class="kwhd"></span> kWh</div> </div> <div class="widget"> <div id="house-graph" class="graph" feed="power"></div> </div> </b></div> <iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&amp;feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe> <br><br> </source> Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern: vim /emon/Vis/kWhdZoomer/view.js vim /emon/Vis/kWhdZoomer/kwhdzoomer.php Ergibt z.B. folgendes Dashboard: [[Datei:emon17.png|Open Energie Monitor]] Fertige Installation: [[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]] = Weblinks = * http://openenergymonitor.org Official Page bacbb099d4746d132f7de22750a38061aa39cd34 Turnigy 9x 0 43 272 168 2025-02-26T13:33:17Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken * Sender Einschalten '''avrdude -c avrispmkII -p m64 -v -P usb''' Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. Backup anlegen: <syntaxhighlight lang="C"> '''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading flash memory: Reading | ################################################## | 100% 12.38s avrdude: writing output file "backupflash.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. '''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading eeprom memory: Reading | ################################################## | 100% 0.43s avrdude: writing output file "backupeeprom.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. </syntaxhighlight> Flashen: Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren... '''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb''' <source lang=text> avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "th9x.bin" avrdude: input file th9x.bin auto detected as raw binary avrdude: writing flash (44956 bytes): Writing | ################################################## | 100% 9.47s avrdude: 44956 bytes of flash written avrdude: verifying flash memory against th9x.bin: avrdude: load data flash data from input file th9x.bin: avrdude: input file th9x.bin auto detected as raw binary avrdude: input file th9x.bin contains 44956 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 8.71s avrdude: verifying ... avrdude: 44956 bytes of flash verified avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. </source> bffccd6a48eadf4f5a36d2b469115d685b6fdbc5 273 272 2025-02-26T13:33:43Z Admin 1 wikitext text/x-wiki In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anstecken * Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download * Win AVR herunterladen: http://sourceforge.net/projects/winavr/files * Programmieren: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. '''Um den Fehler zu beseitigen:''' * Sender Ausschalten * Alle Kabel zum Programmer und PC verbinden * Alle Schalter auf "AUS" * Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken * Sender Einschalten '''avrdude -c avrispmkII -p m64 -v -P usb''' Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. Backup anlegen: <syntaxhighlight lang="C"> '''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading flash memory: Reading | ################################################## | 100% 12.38s avrdude: writing output file "backupflash.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. '''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb''' avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: reading eeprom memory: Reading | ################################################## | 100% 0.43s avrdude: writing output file "backupeeprom.bin" avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. </syntaxhighlight> Flashen: Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren... '''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb''' <syntaxhighlight lang="C"> avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9602 avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "th9x.bin" avrdude: input file th9x.bin auto detected as raw binary avrdude: writing flash (44956 bytes): Writing | ################################################## | 100% 9.47s avrdude: 44956 bytes of flash written avrdude: verifying flash memory against th9x.bin: avrdude: load data flash data from input file th9x.bin: avrdude: input file th9x.bin auto detected as raw binary avrdude: input file th9x.bin contains 44956 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 8.71s avrdude: verifying ... avrdude: 44956 bytes of flash verified avrdude: safemode: lfuse reads as E avrdude: safemode: hfuse reads as 89 avrdude: safemode: efuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. </syntaxhighlight > dddf51fe80150f42f0fd2797f94d59a76dc018ae